Files
zen/core/expression/tests/data/slots.csv
T

51 KiB

1roleunaryscopeexpectedtextstateexpected_tagoptionsoperatorsreplace_spanauto_open
2# Standard start
3conditionfalsebool|startbool0..0true
4conditionfalseboolag|startbool0..2false
5valuefalsestatus|valuestatusopen=Open case,closed=Closed0..0true
6valuefalsenumber|valuenumber0..0true
7valuefalse|start0..0true
8valuefalsebool|valuebool0..0true
9# Value after comparison operators
10conditionfalseboolage == |valuenumber7..7true
11conditionfalseboolage != |valuenumber7..7true
12conditionfalseboolage > |valuenumber6..6true
13conditionfalseboolage >= |valuenumber7..7true
14conditionfalseboolage < |valuenumber6..6true
15conditionfalseboolage <= |valuenumber7..7true
16conditionfalseboolsince < |valuedate8..8true
17conditionfalseboolstatus == |valuestatusopen=Open case,closed=Closed10..10true
18conditionfalseboolstatus != |valuestatusopen=Open case,closed=Closed10..10true
19conditionfalseboolactive == |valuebool10..10true
20conditionfalseboolstatus in |valuestatus[]open=Open case,closed=Closed10..10true
21conditionfalseboolstatus not in |valuestatus[]open=Open case,closed=Closed14..14true
22conditionfalseboolage == 1|valuenumber7..8true
23conditionfalseboolage > -|valuenumber7..7true
24conditionfalseboolage > -5|valuenumber7..8true
25conditionfalsebool(age > 1 and (status == |valuestatusopen=Open case,closed=Closed24..24true
26# Inside string literals
27conditionfalseboolstatus in ['op|inStringstatusopen=Open case11..14true
28valuefalsestring`Hel|lo`inStringstring0..7true
29valuefalsestring`Hello ${name}|inStringstring0..14true
30# List elements and ranges
31conditionfalseboolstatus in [|listElementstatusopen=Open case,closed=Closed11..11true
32conditionfalseboolage in [|listElementnumber8..8true
33conditionfalseboolage in [1..|rangenumber11..11false
34conditionfalseboolage in (1..|rangenumber11..11false
35conditionfalseboolage in [|..5]rangenumber8..8false
36conditionfalseboolsince in [d()..|rangedate15..15false
37conditionfalseboolsince in [|listElementdate10..10true
38conditionfalseboolitems[|startnumber6..6true
39# Operator and logical after a finished operand
40conditionfalseboolage |operator==,!=,<,<=,>,>=,in,not in4..4true
41# Operator menu opens after a complete operand (field path, literal, closed call)
42conditionfalseboolgrounding.status |operator==,!=,in,not in17..17true
43valuefalsestatusgrounding.status |operator==,!=,in,not in17..17true
44conditionfalseboolcustomer.age |operator==,!=,<,<=,>,>=,in,not in13..13true
45conditionfalseboollen(x) |operator==,!=,<,<=,>,>=,in,not in7..7true
46conditionfalseboolname |operator==,!=,in,not in5..5true
47conditionfalseboolstatus |operator==,!=,in,not in7..7true
48conditionfalsebooltags |operatorin,not in5..5true
49conditionfalseboolcustomer.name |operator==,!=,in,not in14..14true
50conditionfalseboolamount |operator==,!=,<,<=,>,>=,in,not in,??7..7true
51conditionfalseboold() |operator==,!=,<,<=,>,>=,in,not in4..4true
52conditionfalseboollen(name) |operator==,!=,<,<=,>,>=,in,not in10..10true
53conditionfalseboolage + 1 |operator==,!=,<,<=,>,>=,in,not in8..8true
54conditionfalseboolactive |logicalbooland,or7..7true
55conditionfalseboolnot active |logicalbooland,or11..11true
56conditionfalsebool(age > 1) |logicalbooland,or10..10true
57conditionfalseboolage > 1 |logicalbooland,or8..8true
58conditionfalseboolage > 1|valuenumber6..7true
59conditionfalseboolage > 1 + 2 |logicalbooland,or12..12true
60conditionfalseboolage in [1..5] |logicalbooland,or14..14true
61conditionfalseboolsince > d() |logicalbooland,or12..12true
62conditionfalseboolage > 1 an|logicalbooland,or8..10true
63conditionfalseboolage > 1 and|logicalbooland,or8..11true
64conditionfalseboolage > 1 and age |operator==,!=,<,<=,>,>=,in,not in16..16true
65# Logical connectives, not, ternary, coalesce, arithmetic
66conditionfalseboolage > 1 and |startbool12..12true
67conditionfalseboolage > 1 or |startbool11..11true
68conditionfalsebool((age > 1) and |startbool15..15true
69conditionfalseboolage > 1 and (|startbool13..13true
70conditionfalseboolnot |startbool4..4true
71valuefalsestatusage > 18 ? |valuestatusopen=Open case,closed=Closed11..11true
72valuefalsenumberamount ?? |valuenumber10..10true
73valuefalsenumberage + |startnumber6..6true
74valuefalsenumber{ a: |start5..5true
75valuefalsestring`Hello ${|start9..9true
76# Member access
77conditionfalseboolcustomer.|member9..9false
78conditionfalseboolcustomer.na|member9..11false
79conditionfalseboold().|member4..4false
80conditionfalseboolsome(items, #.|member14..14false
81# Function arguments and closures
82conditionfalseboold(|argumentdate2..2true
83conditionfalseboollen(|argumentany4..4true
84conditionfalseboolcontains(name, |argumentany15..15true
85conditionfalseboolstartsWith(name, |argumentstring17..17true
86conditionfalseboolsince.isAfter(|argumentdate14..14true
87conditionfalseboolsince.diff(d(), |argumentDurationUnitseconds,second,secs,sec,s,minutes,minute,min,mins,m,hours,hour,hr,hrs,h,days,day,d,weeks,week,w,months,month,mo,M,quarters,quarter,qtr,q,years,year,y16..16true
88conditionfalseboolsome(|argumentany[]5..5true
89conditionfalseboolsome(items, |closureobject12..12true
90conditionfalseboolfilter(items, |closureobject14..14true
91conditionfalseboolsome(statuses, |closurestatusopen=Open case,closed=Closed15..15true
92conditionfalseboolsome(items, #.status == |valuestatusopen=Open case,closed=Closed24..24true
93conditionfalseboolsome(statuses, # == |valuestatusopen=Open case,closed=Closed20..20true
94conditionfalseboolsome(items, #.price > 1 |logicalbooland,or24..24true
95conditionfalseboolsome(items, #.price |operator==,!=,<,<=,>,>=,in,not in20..20true
96conditionfalseboolsome(items, #.price > 1 and |closureobject28..28true
97conditionfalseboolsome(items, (#.price > 1 and |closureobject29..29true
98conditionfalseboollen(name |operator==,!=,in,not in9..9true
99conditionfalseboollen(age |operator==,!=,<,<=,>,>=,in,not in8..8true
100# Unary cells
101unarytrue$status|unaryStartstatusopen=Open case,closed=Closed!=,in,not in0..0true
102unarytrue$status!= |valuestatusopen=Open case,closed=Closed3..3true
103unarytrue$status[|listElementstatusopen=Open case,closed=Closed1..1true
104unarytrue$statusnot in [|listElementstatusopen=Open case,closed=Closed8..8true
105unarytrue$status$ |operator==,!=,in,not in2..2true
106unarytrue$status$ == |valuestatusopen=Open case,closed=Closed5..5true
107unarytrue$number|unaryStartnumber>,>=,<,<=,==,!=,in,not in0..0true
108unarytrue$number> |valuenumber2..2true
109unarytrue$number> 5 |logicalbooland,or4..4true
110unarytrue$number5, |unaryStartnumber>,>=,<,<=,==,!=,in,not in3..3true
111unarytrue$number-5 |logicalbooland,or3..3true
112unarytrue$number[1..|rangenumber4..4false
113unarytrue$number[1..5] |logicalbooland,or7..7true
114unarytrue$number(1..5) or |unaryStartnumber>,>=,<,<=,==,!=,in,not in10..10true
115unarytrue$stringlen($) |operator==,!=,<,<=,>,>=,in,not in7..7true
116unarytrue$date|unaryStartdate>,>=,<,<=,==,!=,in,not in0..0true
117unarytrue$date> d(|argumentdate4..4true
118unarytrue$date[d()..|rangedate6..6false
119unarytrue$date> d() |logicalbooland,or6..6true
120unarytrue$bool|unaryStartbool==,!=0..0true
121unarytrue$bool== |valuebool3..3true
122unarytrue$any|unaryStartany>,>=,<,<=,==,!=,in,not in0..0true
123# Path replace span covers only the last segment
124pathfalsegrounding.stat|path10..14false
125pathfalsegrounding.|path10..10false
126pathfalsegrou|path0..4false
127# Path role and lexer fallback
128pathfalse|path0..0true
129pathfalsecustomer.na|path9..11false
130pathfalsecustomer.na|mepath9..13false
131# Adversarial: unary cells
132unarytrue$number>= 5 and < |valuenumber11..11true
133unarytrue$number$ > 5 and $ < |valuenumber14..14true
134unarytrue$number>|valuenumber1..1true
135unarytrue$number> |valuenumber4..4true
136unarytrue$number> 5 and|logicalbooland,or4..7true
137unarytrue$number> 5 |)logicalbooland,or4..4true
138unarytrue$number5|unaryStartnumber>,>=,<,<=,==,!=,in,not in0..1true
139unarytrue$number(|rangenumber1..1false
140unarytrue$number[1..5], (|rangenumber9..9false
141unarytrue$number1_000, |unaryStartnumber>,>=,<,<=,==,!=,in,not in7..7true
142unarytrue$statusnot |startbool4..4true
143unarytrue$status== |valuestatusopen=Open case,closed=Closed3..3true
144unarytrue$stringlen($) > |valuenumber9..9true
145unarytrue$date> d().|member6..6false
146unarytrue$booltrue |logicalbooland,or5..5true
147unarytrue$booltr|unaryStartbool==,!=0..2true
148unarytrue$any> |valueany2..2true
149unarytrue$number> 5 and < 10 or |unaryStartnumber>,>=,<,<=,==,!=,in,not in16..16true
150# Adversarial: standard conditions
151conditionfalseboolnot (customer.age > 18 and |startbool27..27true
152conditionfalseboollen(items) > |valuenumber13..13true
153conditionfalseboolage not in (|rangenumber12..12false
154conditionfalseboolage in (|rangenumber8..8false
155conditionfalseboolage not in [|listElementnumber12..12true
156valuefalsestring`hello ${customer.|member18..18false
157conditionfalseboolcustomer.age == -|valuenumber17..17true
158conditionfalsebool1_000 > |valuenumber8..8true
159conditionfalseboolcustomer.address.|member17..17false
160conditionfalseboolorders[0].|member10..10false
161conditionfalsebool(age > 1) == |valuebool13..13true
162conditionfalsebool(name).|member7..7false
163conditionfalseboolstatuses[1:|startnumber11..11true
164conditionfalseboolsum(items, #.|member13..13false
165conditionfalseboolmap(items, #.price) |operatorin,not in20..20true
166conditionfalseboolname == `|inStringstring8..9true
167conditionfalseboolname == `a ${age}` |logicalbooland,or19..19true
168# Adversarial: output values
169valuefalsenumberamount ?? |valuenumber10..10true
170valuefalsenumberage > 18 ? 1 : |valuenumber15..15true
171valuefalsenumber(|startnumber1..1true
172conditionfalseboolcustomer.| == 5member9..9false
173conditionfalseboolage |> 5operator==,!=,<,<=,>,>=,in,not in4..4true
174conditionfalseboolage > 5 |and activelogicalbooland,or8..8true
175conditionfalseboolage > | and activevaluenumber6..6true
176conditionfalseboolage > |5 and activevaluenumber6..6true
177conditionfalsebool|age > 5startbool0..0true
178# Adversarial: nasty input
179conditionfalseboolage > 1))) |logicalbooland,or11..11true
180conditionfalsebool== |value3..3true
181conditionfalseboolstatus == 'op|inStringstatusopen=Open case10..13true
182conditionfalseboolinbound > |valuenumber10..10true
183conditionfalseboolnothing |logicalbooland,or8..8true
184conditionfalsebooltrue_value == |valuenumber14..14true
185conditionfalseboolin_progress |logicalbooland,or12..12true
186conditionfalseboolcustomer.in|member9..11false
187conditionfalseboolin|startbool0..2false
188conditionfalseboolnot|startbool0..3false
189conditionfalseboolage > 1 and or |startbool15..15true
190conditionfalseboolage > 1 and $root.|member18..18false
191# Adversarial: second batch
192unarytrue$status$ in [|listElementstatusopen=Open case,closed=Closed6..6true
193unarytrue$number>= 5 and <= |valuenumber12..12true
194unarytrue$number> 5 or (|rangenumber8..8false
195unarytrue$number($ > 5 and |startbool11..11true
196unarytrue$number($ > 5 and $ < 10) or |unaryStartnumber>,>=,<,<=,==,!=,in,not in22..22true
197unarytrue$number[1..5], [|listElementnumber9..9true
198unarytrue$number[1, 2, |listElementnumber7..7true
199unarytrue$numberin [1, |listElementnumber7..7true
200unarytrue$numbernot in [1..|rangenumber11..11false
201unarytrue$number-|valuenumber1..1true
202unarytrue$number- |valuenumber2..2true
203unarytrue$number5 |logicalbooland,or2..2true
204unarytrue$number5, 6 |logicalbooland,or5..5true
205unarytrue$number5 - |startnumber4..4true
206unarytrue$number> 5 an|logicalbooland,or4..6true
207unarytrue$number> 5 andrew|logicalbooland,or4..10true
208unarytrue$numberlen(|argumentany4..4true
209unarytrue$numberabs($) > |valuenumber9..9true
210unarytrue$numbertrue |logicalbooland,or5..5true
211unarytrue$string$ == upper(|argumentstring11..11true
212unarytrue$stringlen($) in [|listElementnumber11..11true
213unarytrue$date$.isAfter(|argumentdate10..10true
214unarytrue$date$.isAfter(d(|argumentdate12..12true
215unarytrue$bool== tr|valuebool3..5true
216unarytrue$booltrue or |unaryStartbool==,!=8..8true
217unarytrue$boolnot |startbool4..4true
218unarytrue$any$.|member2..2false
219# Adversarial: standard conditions, second batch
220conditionfalseboolsome(statuses, # in [|listElementstatusopen=Open case,closed=Closed21..21true
221conditionfalseboolsome(statuses, # not in [|listElementstatusopen=Open case,closed=Closed25..25true
222conditionfalseboolsome(items, #.status in [|listElementstatusopen=Open case,closed=Closed25..25true
223conditionfalseboolall(items, #.price > |valuenumber21..21true
224conditionfalseboolnone(items, #.price in [1..|rangenumber27..27false
225conditionfalseboolfilter(items, #.price > 1)[0].|member30..30false
226conditionfalseboollen(filter(items, #.price > 1)) > |valuenumber34..34true
227conditionfalseboolsince.isSame(|argumentdate13..13true
228conditionfalseboolsince.year() == |valuenumber16..16true
229conditionfalseboolsince.year() |operator==,!=,<,<=,>,>=,in,not in13..13true
230conditionfalseboold(since).|member9..9false
231conditionfalseboolage + 1 > |valuenumber10..10true
232conditionfalseboolage * 2 |operator==,!=,<,<=,>,>=,in,not in8..8true
233conditionfalseboolage > age * |startnumber12..12true
234conditionfalseboolnumber(name) > |valuenumber15..15true
235conditionfalseboolage in [18, |listElementnumber12..12true
236conditionfalseboolage in [18, 21] |logicalbooland,or16..16true
237conditionfalseboolage in [18..|rangenumber12..12false
238conditionfalseboolage in (18..|rangenumber12..12false
239conditionfalseboolage not in [1..5] and |startbool22..22true
240conditionfalseboolnot active and |startbool15..15true
241conditionfalseboolnot (active) |logicalbooland,or13..13true
242conditionfalseboolactive == true and |startbool19..19true
243conditionfalseboolactive == |valuebool10..10true
244conditionfalseboolamount > |valuenumber?9..9true
245conditionfalseboolamount ?? 0 > |valuenumber14..14true
246conditionfalsebool(amount ?? 0) > |valuenumber16..16true
247conditionfalsebool$root.customer.status in [|listElementstatusopen=Open case,closed=Closed26..26true
248conditionfalseboolage == 1 + |startnumber11..11true
249conditionfalseboolage == (|startnumber8..8true
250conditionfalseboolage == -(|startnumber9..9true
251conditionfalsebool`${|start3..3true
252conditionfalsebool`${age} |inStringbool0..8false
253# Adversarial: output values, second batch
254valuefalsestatus`|inStringstatusopen=Open case,closed=Closed0..1true
255valuefalsestatuscustomer.status ?? |valuestatusopen=Open case,closed=Closed19..19true
256valuefalsestatuscustomer.|member9..9false
257valuefalsestatuscustomer.status |operator==,!=,in,not in16..16true
258valuefalsestatusupper(|argumentstring6..6true
259valuefalseboolage > 18 ? |valuebool11..11true
260valuefalseboolage > 18 |logicalbooland,or9..9true
261valuefalseboolage > |valuenumber6..6true
262valuefalseboolage |operator==,!=,<,<=,>,>=,in,not in4..4true
263valuefalseboolactive and |startbool11..11true
264valuefalsenumberage > 18 ? 1 : (|startnumber16..16true
265valuefalsenumber-|valuenumber1..1true
266valuefalsenumber1_000 + |startnumber8..8true
267valuefalsenumbersum(map(items, #.|member17..17false
268valuefalsenumbersum(map(items, #.price)) + |startnumber27..27true
269valuefalsenumberround(amount ?? 0, |argumentnumber19..19true
270valuefalsenumberlen(|argumentany4..4true
271valuefalsenumberage ?? |valuenumber7..7true
272valuefalsedated().add(|argumentany8..8true
273valuefalsedateactive ? since : |valuedate17..17true
274valuefalsedatesince ?? |valuedate9..9true
275valuefalsestring`Hello ${name}, you are ${|start26..26true
276# Adversarial: caret mid-text, second batch
277conditionfalseboold(|) > sinceargumentdate2..2true
278conditionfalseboolsome(items, |#.price > 1)closureobject12..12true
279conditionfalseboolsome(items, #.price > |1)valuenumber22..22true
280conditionfalseboolage in [1..|5]rangenumber11..11false
281conditionfalseboolage in [|1..5]rangenumber8..8false
282unarytrue$number> 5 and |< 10unaryStartnumber>,>=,<,<=,==,!=,in,not in8..8true
283unarytrue$number>| 5valuenumber1..1true
284# Adversarial: nasty input, second batch
285conditionfalsebool)|startbool1..1true
286conditionfalseboolage > 1) and |startbool13..13true
287conditionfalsebool((age > 1 |logicalbooland,or10..10true
288conditionfalseboolage > > |value8..8true
289conditionfalsebooland |startbool4..4true
290conditionfalsebool, |start2..2true
291conditionfalseboolinbound |operator==,!=,<,<=,>,>=,in,not in8..8true
292conditionfalseboolinbound in [|listElementnumber12..12true
293conditionfalseboolandrew |operator==,!=,in,not in7..7true
294conditionfalseboolnothing == |valuebool11..11true
295conditionfalsebooltrue_value |operator==,!=,<,<=,>,>=,in,not in11..11true
296conditionfalseboolin_progress == |valuebool15..15true
297conditionfalseboolcustomer.in_progress |operator==,!=,<,<=,>,>=,in,not in21..21true
298conditionfalseboolnotin |operator==,!=,<,<=,>,>=,in,not in6..6true
299conditionfalseboolage not in|operator==,!=,<,<=,>,>=,in,not in4..10true
300conditionfalseboolage not |startbool8..8true
301conditionfalseboolage in|operator==,!=,<,<=,>,>=,in,not in4..6true
302conditionfalseboolage i|operator==,!=,<,<=,>,>=,in,not in4..5true
303conditionfalseboolage >= 18 and status i|operator==,!=,in,not in21..22true
304conditionfalseboolnull == |valuenull8..8true
305conditionfalseboolstatus == null |logicalbooland,or15..15true
306conditionfalseboolstatus == |nullvaluestatusopen=Open case,closed=Closed10..10true
307conditionfalseboolage > 1 and (|)startbool13..13true
308# Adversarial: third batch
309unarytrue$status|unaryStartstatusopen=Open case,closed=Closed!=,in,not in3..3true
310unarytrue$statuscustomer.|member9..9false
311unarytrue$number< |valuenumber2..2true
312unarytrue$number!= |valuenumber3..3true
313unarytrue$number1.|unaryStartnumber>,>=,<,<=,==,!=,in,not in0..2true
314unarytrue$number> 1.5 |logicalbooland,or6..6true
315unarytrue$number> len(|argumentany6..6true
316unarytrue$number> customer.|member11..11false
317unarytrue$number== customer.age |logicalbooland,or16..16true
318unarytrue$number[1..5] or [|listElementnumber11..11true
319unarytrue$number[1, 2] or (|rangenumber11..11false
320unarytrue$number> 5 and < 10 and |unaryStartnumber>,>=,<,<=,==,!=,in,not in17..17true
321unarytrue$number[1..5]|logicalbooland,or6..6false
322unarytrue$date== d(|argumentdate5..5true
323unarytrue$dated(|argumentdate2..2true
324unarytrue$boolfalse |logicalbooland,or6..6true
325unarytrue$bool!= |valuebool3..3true
326unarytrue$any== |valueany3..3true
327conditionfalseboolage > 1.|valuenumber6..8true
328conditionfalsebooltags[0] |operator==,!=,in,not in8..8true
329conditionfalseboolitems[0].|member9..9false
330conditionfalseboolitems[-1].|member10..10false
331conditionfalseboolitems[0].price > |valuenumber17..17true
332conditionfalseboolabs(age - 18) < |valuenumber16..16true
333conditionfalseboolcustomer.address.city |operator==,!=,in,not in22..22true
334conditionfalsebooltr|startbool0..2false
335conditionfalsebooltrue|startbool0..4false
336conditionfalsebooltrue |logicalbooland,or5..5true
337conditionfalseboolnull|startbool0..4false
338conditionfalseboolage == null|valuenumber7..11true
339conditionfalseboolage in [1..5]|logicalbooland,or13..13false
340conditionfalseboolage in [1..5] and age not in (|rangenumber30..30false
341conditionfalseboolage > | garbage herevaluenumber6..6true
342conditionfalsebool(((|startbool3..3true
343conditionfalseboolage <> |value7..7true
344conditionfalseboolage > 1 && |startbool11..11true
345conditionfalseboolstatus == “|startbool13..13true
346valuefalsenumberage > 18 ? age : |valuenumber17..17true
347valuefalseboolnot |startbool4..4true
348valuefalsenumbersum(map(items, #.price)) |operator==,!=,<,<=,>,>=,in,not in25..25true
349valuefalsenumbermax(|argumentany[]4..4true
350pathfalsecustomer.address.|path17..17false
351pathfalsecust|path0..4false
352pathfalse|customerpath0..8false
353pathfalsein|path0..2false
354pathfalsecustomer.|addresspath9..16false
355# Path role: only a bare identifier chain is a path, anything else classifies as a value expression
356pathfalsed(|argumentdate2..2true
357pathfalsecustomer.since.|path15..15false
358pathfalsecustomer.since.isAfter(|argumentdate23..23true
359pathfalsecustomer.name |operator==,!=,in,not in14..14true
360pathfalselen(|argumentany4..4true
361pathfalsecustomer.age + |startnumber15..15true
362# Closure membership: the collection literal takes the enum of the field it is tested against
363conditionfalseboolsome([|], # in statuses)listElementstatusopen=Open case,closed=Closed6..6true
364conditionfalseboolsome([|] as s, s in statuses)listElementstatusopen=Open case,closed=Closed6..6true
365conditionfalseboolsome([|], # in tags)listElement6..6true
366# Auto-open: an operand due (empty editor or after something) opens the menua word under the caret or a member/path prefix does not
367conditionfalseboolactive and |startbool11..11true
368conditionfalseboola > 1 or |startbool9..9true
369valuefalsenumberage + |startnumber6..6true
370conditionfalseboolage > |valuenumber6..6true
371conditionfalseboollen(|argumentany4..4true
372valuefalsenumberx ? |valuenumber4..4true
373valuefalsenumberx ?? |valueany5..5true
374valuefalse[|listElement1..1true
375conditionfalsebool(|startbool1..1true
376conditionfalsebool|startbool0..0true
377conditionfalseboolcust|startbool0..4false
378conditionfalseboolcustomer.|member9..9false
379pathfalse|path0..0true
380pathfalse|path1..1true
381pathfalsecust|path0..4false
382pathfalsecustomer.|path9..9false
383# Const-typed fields offer their literal like a one-member enuma bare literal on the left still widens
384# Nullable operands: inner operators plus ==, != and ??equality values offer null
385conditionfalseboolamount > |valuenumber?9..9true
386conditionfalseboolamount == |valuenumber?null10..10true