================================================================================ From keyword can be a variable ================================================================================ var a = Assert.Range(from, to); -------------------------------------------------------------------------------- (compilation_unit (global_statement (local_declaration_statement (variable_declaration type: (implicit_type) (variable_declarator name: (identifier) (equals_value_clause (invocation_expression function: (member_access_expression expression: (identifier) name: (identifier)) arguments: (argument_list (argument (identifier)) (argument (identifier)))))))))) ================================================================================ File keyword in invocation ================================================================================ file.Method(1, 2); -------------------------------------------------------------------------------- (compilation_unit (global_statement (expression_statement (invocation_expression function: (member_access_expression expression: (identifier) name: (identifier)) arguments: (argument_list (argument (integer_literal)) (argument (integer_literal))))))) ================================================================================ File contextual keyword ================================================================================ void file() { } void m(file p) { } void m(int file) { } void m() { file v = null; int file = file; file(); m(file); var x = file + 1; } file class file { } -------------------------------------------------------------------------------- (compilation_unit (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list (parameter type: (identifier) name: (identifier))) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list (parameter type: (predefined_type) name: (identifier))) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list) body: (block (local_declaration_statement (variable_declaration type: (identifier) (variable_declarator name: (identifier) (equals_value_clause (null_literal))))) (local_declaration_statement (variable_declaration type: (predefined_type) (variable_declarator name: (identifier) (equals_value_clause (identifier))))) (expression_statement (invocation_expression function: (identifier) arguments: (argument_list))) (expression_statement (invocation_expression function: (identifier) arguments: (argument_list (argument (identifier))))) (local_declaration_statement (variable_declaration type: (implicit_type) (variable_declarator name: (identifier) (equals_value_clause (binary_expression left: (identifier) right: (integer_literal))))))))) (class_declaration (modifier) name: (identifier) body: (declaration_list))) ================================================================================ Scoped contextual keyword ================================================================================ void scoped() { } void m(scoped p) { } void m(scoped ref int p) { } void m(scoped ref scoped p) { } void m(int scoped) { } void m() { scoped v = null; scoped ref int v = null; scoped ref scoped v = null; int scoped = null; scoped(); m(scoped); var x = scoped + 1; var l = scoped => null; var l = (scoped i) => null; var l = (scoped, i) => null; var l = scoped (int i, int j) => null; } class scoped { } -------------------------------------------------------------------------------- (compilation_unit (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list (parameter type: (identifier) name: (identifier))) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list (parameter (parameter_modifier) (parameter_modifier) type: (predefined_type) name: (identifier))) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list (parameter (parameter_modifier) (parameter_modifier) type: (identifier) name: (identifier))) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list (parameter type: (predefined_type) name: (identifier))) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list) body: (block (local_declaration_statement (variable_declaration type: (identifier) (variable_declarator name: (identifier) (equals_value_clause (null_literal))))) (local_declaration_statement (variable_declaration type: (scoped_type type: (ref_type type: (predefined_type))) (variable_declarator name: (identifier) (equals_value_clause (null_literal))))) (local_declaration_statement (variable_declaration type: (scoped_type type: (ref_type type: (identifier))) (variable_declarator name: (identifier) (equals_value_clause (null_literal))))) (local_declaration_statement (variable_declaration type: (predefined_type) (variable_declarator name: (identifier) (equals_value_clause (null_literal))))) (expression_statement (invocation_expression function: (identifier) arguments: (argument_list))) (expression_statement (invocation_expression function: (identifier) arguments: (argument_list (argument (identifier))))) (local_declaration_statement (variable_declaration type: (implicit_type) (variable_declarator name: (identifier) (equals_value_clause (binary_expression left: (identifier) right: (integer_literal)))))) (local_declaration_statement (variable_declaration type: (implicit_type) (variable_declarator name: (identifier) (equals_value_clause (lambda_expression parameters: (implicit_parameter_list (parameter name: (identifier))) body: (null_literal)))))) (local_declaration_statement (variable_declaration type: (implicit_type) (variable_declarator name: (identifier) (equals_value_clause (lambda_expression parameters: (parameter_list (parameter type: (identifier) name: (identifier))) body: (null_literal)))))) (local_declaration_statement (variable_declaration type: (implicit_type) (variable_declarator name: (identifier) (equals_value_clause (lambda_expression parameters: (parameter_list (parameter name: (identifier)) (parameter name: (identifier))) body: (null_literal)))))) (local_declaration_statement (variable_declaration type: (implicit_type) (variable_declarator name: (identifier) (equals_value_clause (lambda_expression type: (identifier) parameters: (parameter_list (parameter type: (predefined_type) name: (identifier)) (parameter type: (predefined_type) name: (identifier))) body: (null_literal))))))))) (class_declaration name: (identifier) body: (declaration_list))) ================================================================================ Set contextual keyword ================================================================================ void set() { } void m(set p) { } void m(int set) { } void m() { set v = null; int set = set; set(); m(set); var x = set + 1; } class set { } -------------------------------------------------------------------------------- (compilation_unit (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list (parameter type: (identifier) name: (identifier))) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list (parameter type: (predefined_type) name: (identifier))) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list) body: (block (local_declaration_statement (variable_declaration type: (identifier) (variable_declarator name: (identifier) (equals_value_clause (null_literal))))) (local_declaration_statement (variable_declaration type: (predefined_type) (variable_declarator name: (identifier) (equals_value_clause (identifier))))) (expression_statement (invocation_expression function: (identifier) arguments: (argument_list))) (expression_statement (invocation_expression function: (identifier) arguments: (argument_list (argument (identifier))))) (local_declaration_statement (variable_declaration type: (implicit_type) (variable_declarator name: (identifier) (equals_value_clause (binary_expression left: (identifier) right: (integer_literal))))))))) (class_declaration name: (identifier) body: (declaration_list))) ================================================================================ Var contextual keyword ================================================================================ void var() { } void m(var p) { } void m(int var) { } void m() { var v = null; int var = var; var var = 1; var(); m(var); var x = var + 1; } class var { } -------------------------------------------------------------------------------- (compilation_unit (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list (parameter type: (implicit_type) name: (identifier))) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list (parameter type: (predefined_type) name: (identifier))) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list) body: (block (local_declaration_statement (variable_declaration type: (implicit_type) (variable_declarator name: (identifier) (equals_value_clause (null_literal))))) (local_declaration_statement (variable_declaration type: (predefined_type) (variable_declarator name: (identifier) (equals_value_clause (identifier))))) (local_declaration_statement (variable_declaration type: (implicit_type) (variable_declarator name: (identifier) (equals_value_clause (integer_literal))))) (expression_statement (invocation_expression function: (identifier) arguments: (argument_list))) (expression_statement (invocation_expression function: (identifier) arguments: (argument_list (argument (identifier))))) (local_declaration_statement (variable_declaration type: (implicit_type) (variable_declarator name: (identifier) (equals_value_clause (binary_expression left: (identifier) right: (integer_literal))))))))) (class_declaration name: (identifier) body: (declaration_list))) ================================================================================ Nameof contextual keyword ================================================================================ void nameof() { } void m(nameof p) { } void m(int nameof) { } void m() { nameof v = null; int nameof = nameof; nameof(); nameof(a, b); m(nameof); var x = nameof + 1; } class nameof { } -------------------------------------------------------------------------------- (compilation_unit (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list (parameter type: (identifier) name: (identifier))) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list (parameter type: (predefined_type) name: (identifier))) body: (block))) (global_statement (local_function_statement type: (predefined_type) name: (identifier) parameters: (parameter_list) body: (block (local_declaration_statement (variable_declaration type: (identifier) (variable_declarator name: (identifier) (equals_value_clause (null_literal))))) (local_declaration_statement (variable_declaration type: (predefined_type) (variable_declarator name: (identifier) (equals_value_clause (identifier))))) (expression_statement (invocation_expression function: (identifier) arguments: (argument_list))) (expression_statement (invocation_expression function: (identifier) arguments: (argument_list (argument (identifier)) (argument (identifier))))) (expression_statement (invocation_expression function: (identifier) arguments: (argument_list (argument (identifier))))) (local_declaration_statement (variable_declaration type: (implicit_type) (variable_declarator name: (identifier) (equals_value_clause (binary_expression left: (identifier) right: (integer_literal))))))))) (class_declaration name: (identifier) body: (declaration_list)))