@@ -77,32 +77,82 @@ Given cs (typeof operator):
7777 typeof(Dictionary<string,List<Image>>)
7878
7979Execute:
80- AssertEqual 'csTypeOf ', SyntaxAt(1, 1 )
81- AssertEqual 'csParens', SyntaxAt(1, 7 )
82- AssertEqual 'csTypeOfOperand', SyntaxAt(1, 8 )
83- AssertEqual 'csParens', SyntaxAt(1, 38 )
80+ AssertEqual 'csKeywordOperator ', SyntaxOf('typeof' )
81+ AssertEqual 'csParens', SyntaxOf('(' )
82+ AssertEqual 'csTypeOfOperand', SyntaxOf('(\zs' )
83+ AssertEqual 'csParens', SyntaxOf(')' )
8484
8585Given cs (typeof operator with space before open paren):
8686 typeof (Dictionary<string,List<Image>>)
8787
8888Execute:
89- AssertEqual 'csTypeOf ', SyntaxAt(1, 1 )
90- AssertEqual 'csParens', SyntaxAt(1, 8 )
91- AssertEqual 'csTypeOfOperand', SyntaxAt(1, 9 )
92- AssertEqual 'csParens', SyntaxAt(1, 39 )
89+ AssertEqual 'csKeywordOperator ', SyntaxOf('typeof' )
90+ AssertEqual 'csParens', SyntaxOf('(' )
91+ AssertEqual 'csTypeOfOperand', SyntaxOf('(\zs' )
92+ AssertEqual 'csParens', SyntaxOf(')' )
9393
9494Given cs (typeof operator with missing operand parens):
9595 typeof Dictionary<string,List<Image>>
9696
9797Execute:
98- AssertEqual 'csTypeOf', SyntaxAt(1, 1)
99- AssertEqual 'csTypeOfError', SyntaxAt(1, 8)
98+ AssertEqual 'csKeywordOperator', SyntaxOf('typeof')
99+ AssertEqual 'csMissingParenError', SyntaxAt(1, 8)
100+
101+ Given cs (sizeof operator):
102+ sizeof(byte)
103+
104+ Execute:
105+ AssertEqual 'csKeywordOperator', SyntaxOf('sizeof')
106+ AssertEqual 'csParens', SyntaxOf('(')
107+ AssertEqual 'csType', SyntaxOf('(\zs')
108+ AssertEqual 'csParens', SyntaxOf(')')
109+
110+ Given cs (sizeof operator with space before open paren):
111+ sizeof (byte)
112+
113+ Execute:
114+ AssertEqual 'csKeywordOperator', SyntaxOf('sizeof')
115+ AssertEqual 'csParens', SyntaxOf('(')
116+ AssertEqual 'csType', SyntaxOf('(\zs')
117+ AssertEqual 'csParens', SyntaxOf(')')
118+
119+ Given cs (sizeof operator with missing operand parens):
120+ sizeof byte
121+
122+ Execute:
123+ AssertEqual 'csKeywordOperator', SyntaxOf('sizeof')
124+ AssertEqual 'csMissingParenError', SyntaxOf('b\zeyte')
125+
126+ Given cs (nameof operator):
127+ nameof(foobar)
128+
129+ Execute:
130+ AssertEqual 'csKeywordOperator', SyntaxOf('nameof')
131+ AssertEqual 'csParens', SyntaxOf('(')
132+ AssertEqual 'csNameOfOperand', SyntaxOf('(\zs')
133+ AssertEqual 'csParens', SyntaxOf(')')
134+
135+ Given cs (nameof operator with space before open paren):
136+ nameof (foobar)
137+
138+ Execute:
139+ AssertEqual 'csKeywordOperator', SyntaxOf('nameof')
140+ AssertEqual 'csParens', SyntaxOf('(')
141+ AssertEqual 'csNameOfOperand', SyntaxOf('(\zs')
142+ AssertEqual 'csParens', SyntaxOf(')')
143+
144+ Given cs (nameof operator with missing operand parens):
145+ nameof foobar
146+
147+ Execute:
148+ AssertEqual 'csKeywordOperator', SyntaxOf('nameof')
149+ AssertEqual 'csMissingParenError', SyntaxOf('f\zeoobar')
100150
101151Given cs (await operator):
102152 await foobar();
103153
104154Execute:
105- AssertEqual 'csAsyncOperator', SyntaxAt(1, 1 )
155+ AssertEqual 'csAsyncOperator', SyntaxOf('await' )
106156
107157Given cs (checked operator):
108158 var foobar = checked(42 + 1);
@@ -116,3 +166,29 @@ Given cs (unchecked operator):
116166Execute:
117167 AssertEqual 'csKeywordOperator', SyntaxOf('unchecked')
118168
169+ Given cs (stackalloc operator):
170+ Span<byte> foobar = stackalloc byte[42];
171+
172+ Execute:
173+ AssertEqual 'csKeywordOperator', SyntaxOf('stackalloc')
174+
175+ Given cs (switch operator):
176+ var foo = bar switch { _ => 42 };
177+
178+ Execute:
179+ AssertEqual 'csKeywordOperator', SyntaxOf('switch')
180+
181+ Given cs (delegate operator):
182+ Func<byte> foobar = delegate (byte a) { return 42; };
183+ Action foobar = delegate { FortyTwo(); };
184+
185+ Execute:
186+ AssertEqual 'csKeywordOperator', SyntaxOf('delegate', 1)
187+ AssertEqual 'csKeywordOperator', SyntaxOf('delegate', 2)
188+
189+ Given cs (with operator):
190+ var foo = bar with { Baz = 42 };
191+
192+ Execute:
193+ AssertEqual 'csKeywordOperator', SyntaxOf('with')
194+
0 commit comments