Marcel van Lohuizen | 75cb003 | 2019-01-11 12:10:48 +0100 | [diff] [blame] | 1 | [TOC](Readme.md) [Prev](duplicates.md) [Next](types.md) |
| 2 | |
Marcel van Lohuizen | 3e592b4 | 2019-01-11 20:31:29 +0100 | [diff] [blame] | 3 | _Types ~~and~~ are Values_ |
Marcel van Lohuizen | af0932f | 2019-01-11 13:03:56 +0100 | [diff] [blame] | 4 | |
Marcel van Lohuizen | 75cb003 | 2019-01-11 12:10:48 +0100 | [diff] [blame] | 5 | # Bottom |
| 6 | |
Marcel van Lohuizen | 3e592b4 | 2019-01-11 20:31:29 +0100 | [diff] [blame] | 7 | Specifying duplicate fields with conflicting values results in an error |
| 8 | or bottom. |
| 9 | _Bottom_ is a special value in CUE, denoted `_|_`, that indicates an |
| 10 | error such as incompatible values. |
| 11 | Any error in CUE results in `_|_`. |
| 12 | Logically all errors are equal, although errors may be associated with |
| 13 | metadata such as an error message. |
Marcel van Lohuizen | 75cb003 | 2019-01-11 12:10:48 +0100 | [diff] [blame] | 14 | |
Jonathan Amsterdam | e479038 | 2019-01-20 10:29:29 -0500 | [diff] [blame] | 15 | Note that an error is different from `null`: `null` is a valid value, |
Marcel van Lohuizen | 75cb003 | 2019-01-11 12:10:48 +0100 | [diff] [blame] | 16 | whereas `_|_` is not. |
| 17 | |
| 18 | <!-- CUE editor --> |
| 19 | ``` |
| 20 | a: 4 |
| 21 | a: 5 |
| 22 | |
| 23 | l: [ 1, 2 ] |
| 24 | l: [ 1, 3 ] |
Marcel van Lohuizen | 3e592b4 | 2019-01-11 20:31:29 +0100 | [diff] [blame] | 25 | |
| 26 | list: [0, 1, 2] |
| 27 | val: list[3] |
Marcel van Lohuizen | 75cb003 | 2019-01-11 12:10:48 +0100 | [diff] [blame] | 28 | ``` |
| 29 | |
| 30 | <!-- result --> |
| 31 | ``` |
Marcel van Lohuizen | 3e592b4 | 2019-01-11 20:31:29 +0100 | [diff] [blame] | 32 | a: _|_ |
| 33 | l: _|_ |
| 34 | list: [0, 1, 2] |
| 35 | val: _|_ |
Jonathan Amsterdam | e479038 | 2019-01-20 10:29:29 -0500 | [diff] [blame] | 36 | ``` |