623623# ^ template .ng expression .ng
624624# ^^ template .ng punctuation .definition .block .ts
625625>
626+ >< ! -- Nullish coalesce -- >
627+ #^^^^^^^^^^^^^^^^^^^^^^^^^^ template .ng
628+ > {{a ?? 'empty'}}
629+ #^^ template .ng punctuation .definition .block .ts
630+ # ^ template .ng expression .ng variable .other .readwrite .ts
631+ # ^ template .ng expression .ng
632+ # ^^ template .ng expression .ng keyword .operator .logical .ts
633+ # ^ template .ng expression .ng
634+ # ^ template .ng expression .ng string .quoted .single .ts punctuation .definition .string .begin .ts
635+ # ^^^^^ template .ng expression .ng string .quoted .single .ts
636+ # ^ template .ng expression .ng string .quoted .single .ts punctuation .definition .string .end .ts
637+ # ^^ template .ng punctuation .definition .block .ts
638+ >
626639>< ! -- Ternary expression -- >
627640#^^^^^^^^^^^^^^^^^^^^^^^^^^^^ template .ng
628641> {{ condition ? true : false }}
653666# ^^^^^ template .ng expression .ng constant .language .boolean .false .ts
654667# ^^ template .ng expression .ng
655668# ^^ template .ng punctuation .definition .block .ts
656- > {{ condition() ? call(1 + 2 + 3) : call () }}
669+ > {{ condition() ? call(1 + 2 + 3) : call () }}
657670#^^ template .ng punctuation .definition .block .ts
658671# ^ template .ng expression .ng
659672# ^^^^^^^^^ template .ng expression .ng entity .name .function .ts
680693# ^^^^ template .ng expression .ng entity .name .function .ts
681694# ^ template .ng expression .ng meta .brace .round .ts
682695# ^ template .ng expression .ng meta .brace .round .ts
683- # ^^ template .ng expression .ng
684- # ^^ template .ng punctuation .definition .block .ts
685- > {{ condition() ? call(1 + 2 + 3) : call (); }}
696+ # ^ template .ng expression .ng
697+ # ^^ template .ng punctuation .definition .block .ts
698+ > {{ condition() ? call(1 + 2 + 3) : call (); }}
686699#^^ template .ng punctuation .definition .block .ts
687700# ^ template .ng expression .ng
688701# ^^^^^^^^^ template .ng expression .ng entity .name .function .ts
709722# ^^^^ template .ng expression .ng entity .name .function .ts
710723# ^ template .ng expression .ng meta .brace .round .ts
711724# ^ template .ng expression .ng meta .brace .round .ts
712- # ^^^ template .ng expression .ng
713- # ^^ template .ng punctuation .definition .block .ts
725+ # ^^ template .ng expression .ng
726+ # ^^ template .ng punctuation .definition .block .ts
714727> {{ condition()?.object ? call()!.test() : false }}
715728#^^ template .ng punctuation .definition .block .ts
716729# ^ template .ng expression .ng
837850# ^ template .ng expression .ng constant .numeric .decimal .ts
838851# ^ template .ng expression .ng
839852# ^^ template .ng punctuation .definition .block .ts
853+ >< ! -- Don ' t match nullish coalesce -->
854+ #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ template .ng
855+ > {{ condition ?? (a ? 1 : 2 ) }}
856+ #^^ template .ng punctuation .definition .block .ts
857+ # ^ template .ng expression .ng
858+ # ^^^^^^^^^ template .ng expression .ng variable .other .readwrite .ts
859+ # ^ template .ng expression .ng
860+ # ^^ template .ng expression .ng keyword .operator .logical .ts
861+ # ^ template .ng expression .ng
862+ # ^ template .ng expression .ng meta .brace .round .ts
863+ # ^ template .ng expression .ng variable .other .readwrite .ts
864+ # ^ template .ng expression .ng
865+ # ^ template .ng expression .ng keyword .operator .ternary .ts
866+ # ^ template .ng expression .ng
867+ # ^ template .ng expression .ng constant .numeric .decimal .ts
868+ # ^ template .ng expression .ng
869+ # ^ template .ng expression .ng keyword .operator .ternary .ts
870+ # ^ template .ng expression .ng
871+ # ^ template .ng expression .ng constant .numeric .decimal .ts
872+ # ^ template .ng expression .ng meta .brace .round .ts
873+ # ^ template .ng expression .ng
874+ # ^^ template .ng punctuation .definition .block .ts
840875>
841876>< ! -- Microsyntax -- >
842877#^^^^^^^^^^^^^^^^^^^^^ template .ng
12191254>
12201255><!-- Mixed -->
12211256#^^^^^^^^^^^^^^^ template.ng
1222- >{ { (let param of params ? .get ('value ')!.property | async).anotherProperty | translate: ['language1', 'language2']; index as i } }
1257+ >{ { (let param of params ? .get ('value ')!.property | async).anotherProperty | translate: ['language1', 'language2']; index
12231258#^^ template.ng punctuation.definition.block.ts
12241259# ^ template.ng expression.ng
12251260# ^ template.ng expression.ng meta.brace.round.ts
12651300# ^ template.ng expression.ng meta.array.literal.ts meta.brace.square.ts
12661301# ^^ template.ng expression.ng
12671302# ^^^^^ template.ng expression.ng variable.other.readwrite.ts
1268- # ^ template.ng expression.ng
1269- # ^^ template.ng expression.ng storage.type.as.ts
1270- # ^ template.ng expression.ng
1271- # ^ template.ng expression.ng entity.name.type.ts
1272- # ^ template.ng expression.ng
1273- # ^^ template.ng punctuation.definition.block.ts
1303+ >as i } }
1304+ #^^ template.ng expression.ng storage.type.as.ts
1305+ # ^ template.ng expression.ng
1306+ # ^ template.ng expression.ng entity.name.type.ts
1307+ # ^ template.ng expression.ng
1308+ # ^^ template.ng punctuation.definition.block.ts
12741309>{ { (let param of params ? .anotherParam !.param ().param | async) as p; let i = index; let first = first }}
12751310#^^ template.ng punctuation.definition.block.ts
12761311# ^ template.ng expression.ng
13181353# ^^^^^ template.ng expression.ng variable.other.readwrite.ts
13191354# ^ template.ng expression.ng
13201355# ^^ template.ng punctuation.definition.block.ts
1321- >{ { (let param of params ? .get ('value ')!.property | async).anotherProperty | translate: ['language1', 'language2']; let i = index; } }
1356+ >{ { (let param of params ? .get ('value ')!.property | async).anotherProperty | translate: ['language1', 'language2']; let i
13221357#^^ template.ng punctuation.definition.block.ts
13231358# ^ template.ng expression.ng
13241359# ^ template.ng expression.ng meta.brace.round.ts
13661401# ^^^ template.ng expression.ng storage.type.ts
13671402# ^ template.ng expression.ng
13681403# ^ template.ng expression.ng variable.other.readwrite.ts
1369- # ^ template.ng expression.ng
1370- # ^ template.ng expression.ng keyword.operator.assignment.ts
1371- # ^ template.ng expression.ng
1372- # ^^^^^ template.ng expression.ng variable.other.readwrite.ts
1373- # ^^ template.ng expression.ng
1374- # ^^ template.ng punctuation.definition.block.ts
1404+ >= index; } }
1405+ #^ template.ng expression.ng keyword.operator.assignment.ts
1406+ # ^ template.ng expression.ng
1407+ # ^^^^^ template.ng expression.ng variable.other.readwrite.ts
1408+ # ^^ template.ng expression.ng
1409+ # ^^ template.ng punctuation.definition.block.ts
13751410>
13761411><!-- Regression -->
13771412#^^^^^^^^^^^^^^^^^^^^ template.ng
14181453# ^ template.ng meta.ng-binding.template.html expression.ng
14191454# ^ template.ng meta.ng-binding.template.html expression.ng entity.name.type.ts
14201455# ^ template.ng meta.ng-binding.template.html string.quoted.html punctuation.definition.string.end.html
1421- # ^^^^^^^^ template.ng
1422- >
1456+ # ^^^^^^^^ template.ng
0 commit comments