in src/EditorFeatures/CSharpTest/Classification/SyntacticClassifierTests.cs [2999:3312]
public async Task TestAllOperators()
{
await TestAsync(
@"using IO = System.IO;
public class Goo<T>
{
public void method()
{
int[] a = new int[5];
int[] var = {
1,
2,
3,
4,
5
};
int i = a[i];
Goo<T> f = new Goo<int>();
f.method();
i = i + i - i * i / i % i & i | i ^ i;
bool b = true & false | true ^ false;
b = !b;
i = ~i;
b = i < i && i > i;
int? ii = 5;
int f = true ? 1 : 0;
i++;
i--;
b = true && false || true;
i << 5;
i >> 5;
b = i == i && i != i && i <= i && i >= i;
i += 5.0;
i -= i;
i *= i;
i /= i;
i %= i;
i &= i;
i |= i;
i ^= i;
i <<= i;
i >>= i;
object s = x => x + 1;
Point point;
unsafe
{
Point* p = &point;
p->x = 10;
}
IO::BinaryReader br = null;
}
}",
Keyword("using"),
Identifier("IO"),
Operators.Equals,
Identifier("System"),
Operators.Dot,
Identifier("IO"),
Punctuation.Semicolon,
Keyword("public"),
Keyword("class"),
Class("Goo"),
Punctuation.OpenAngle,
TypeParameter("T"),
Punctuation.CloseAngle,
Punctuation.OpenCurly,
Keyword("public"),
Keyword("void"),
Identifier("method"),
Punctuation.OpenParen,
Punctuation.CloseParen,
Punctuation.OpenCurly,
Keyword("int"),
Punctuation.OpenBracket,
Punctuation.CloseBracket,
Identifier("a"),
Operators.Equals,
Keyword("new"),
Keyword("int"),
Punctuation.OpenBracket,
Number("5"),
Punctuation.CloseBracket,
Punctuation.Semicolon,
Keyword("int"),
Punctuation.OpenBracket,
Punctuation.CloseBracket,
Identifier("var"),
Operators.Equals,
Punctuation.OpenCurly,
Number("1"),
Punctuation.Comma,
Number("2"),
Punctuation.Comma,
Number("3"),
Punctuation.Comma,
Number("4"),
Punctuation.Comma,
Number("5"),
Punctuation.CloseCurly,
Punctuation.Semicolon,
Keyword("int"),
Identifier("i"),
Operators.Equals,
Identifier("a"),
Punctuation.OpenBracket,
Identifier("i"),
Punctuation.CloseBracket,
Punctuation.Semicolon,
Identifier("Goo"),
Punctuation.OpenAngle,
Identifier("T"),
Punctuation.CloseAngle,
Identifier("f"),
Operators.Equals,
Keyword("new"),
Identifier("Goo"),
Punctuation.OpenAngle,
Keyword("int"),
Punctuation.CloseAngle,
Punctuation.OpenParen,
Punctuation.CloseParen,
Punctuation.Semicolon,
Identifier("f"),
Operators.Dot,
Identifier("method"),
Punctuation.OpenParen,
Punctuation.CloseParen,
Punctuation.Semicolon,
Identifier("i"),
Operators.Equals,
Identifier("i"),
Operators.Text("+"),
Identifier("i"),
Operators.Text("-"),
Identifier("i"),
Operators.Star,
Identifier("i"),
Operators.Text("/"),
Identifier("i"),
Operators.Text("%"),
Identifier("i"),
Operators.Text("&"),
Identifier("i"),
Operators.Text("|"),
Identifier("i"),
Operators.Text("^"),
Identifier("i"),
Punctuation.Semicolon,
Keyword("bool"),
Identifier("b"),
Operators.Equals,
Keyword("true"),
Operators.Text("&"),
Keyword("false"),
Operators.Text("|"),
Keyword("true"),
Operators.Text("^"),
Keyword("false"),
Punctuation.Semicolon,
Identifier("b"),
Operators.Equals,
Operators.Exclamation,
Identifier("b"),
Punctuation.Semicolon,
Identifier("i"),
Operators.Equals,
Operators.Text("~"),
Identifier("i"),
Punctuation.Semicolon,
Identifier("b"),
Operators.Equals,
Identifier("i"),
Operators.LessThan,
Identifier("i"),
Operators.DoubleAmpersand,
Identifier("i"),
Operators.GreaterThan,
Identifier("i"),
Punctuation.Semicolon,
Keyword("int"),
Operators.QuestionMark,
Identifier("ii"),
Operators.Equals,
Number("5"),
Punctuation.Semicolon,
Keyword("int"),
Identifier("f"),
Operators.Equals,
Keyword("true"),
Operators.QuestionMark,
Number("1"),
Operators.Colon,
Number("0"),
Punctuation.Semicolon,
Identifier("i"),
Operators.Text("++"),
Punctuation.Semicolon,
Identifier("i"),
Operators.Text("--"),
Punctuation.Semicolon,
Identifier("b"),
Operators.Equals,
Keyword("true"),
Operators.DoubleAmpersand,
Keyword("false"),
Operators.DoublePipe,
Keyword("true"),
Punctuation.Semicolon,
Identifier("i"),
Operators.Text("<<"),
Number("5"),
Punctuation.Semicolon,
Identifier("i"),
Operators.Text(">>"),
Number("5"),
Punctuation.Semicolon,
Identifier("b"),
Operators.Equals,
Identifier("i"),
Operators.DoubleEquals,
Identifier("i"),
Operators.DoubleAmpersand,
Identifier("i"),
Operators.ExclamationEquals,
Identifier("i"),
Operators.DoubleAmpersand,
Identifier("i"),
Operators.Text("<="),
Identifier("i"),
Operators.DoubleAmpersand,
Identifier("i"),
Operators.Text(">="),
Identifier("i"),
Punctuation.Semicolon,
Identifier("i"),
Operators.Text("+="),
Number("5.0"),
Punctuation.Semicolon,
Identifier("i"),
Operators.Text("-="),
Identifier("i"),
Punctuation.Semicolon,
Identifier("i"),
Operators.Text("*="),
Identifier("i"),
Punctuation.Semicolon,
Identifier("i"),
Operators.Text("/="),
Identifier("i"),
Punctuation.Semicolon,
Identifier("i"),
Operators.Text("%="),
Identifier("i"),
Punctuation.Semicolon,
Identifier("i"),
Operators.Text("&="),
Identifier("i"),
Punctuation.Semicolon,
Identifier("i"),
Operators.Text("|="),
Identifier("i"),
Punctuation.Semicolon,
Identifier("i"),
Operators.Text("^="),
Identifier("i"),
Punctuation.Semicolon,
Identifier("i"),
Operators.Text("<<="),
Identifier("i"),
Punctuation.Semicolon,
Identifier("i"),
Operators.Text(">>="),
Identifier("i"),
Punctuation.Semicolon,
Keyword("object"),
Identifier("s"),
Operators.Equals,
Identifier("x"),
Operators.Text("=>"),
Identifier("x"),
Operators.Text("+"),
Number("1"),
Punctuation.Semicolon,
Identifier("Point"),
Identifier("point"),
Punctuation.Semicolon,
Keyword("unsafe"),
Punctuation.OpenCurly,
Identifier("Point"),
Operators.Star,
Identifier("p"),
Operators.Equals,
Operators.Text("&"),
Identifier("point"),
Punctuation.Semicolon,
Identifier("p"),
Operators.Text("->"),
Identifier("x"),
Operators.Equals,
Number("10"),
Punctuation.Semicolon,
Punctuation.CloseCurly,
Identifier("IO"),
Operators.Text("::"),
Identifier("BinaryReader"),
Identifier("br"),
Operators.Equals,
Keyword("null"),
Punctuation.Semicolon,
Punctuation.CloseCurly,
Punctuation.CloseCurly);
}