public async Task TestAllOperators()

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);
        }