Discard.cs: # 3| [Class] Discard # 5| 5: [Method] M1 # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; # 7| 0: [LocalVariableDeclAndInitExpr] Func i = ... # 7| -1: [TypeMention] Func # 7| 1: [TypeMention] int # 7| 2: [TypeMention] int # 7| 3: [TypeMention] int # 7| 0: [LocalVariableAccess] access to local variable i # 7| 1: [LambdaExpr] (...) => ... #-----| 2: (Parameters) # 7| 0: [Parameter] a # 7| -1: [TypeMention] int # 7| 1: [Parameter] b # 7| -1: [TypeMention] int # 7| 4: [IntLiteral] 42 # 8| 1: [ExprStmt] ...; # 8| 0: [AssignExpr] ... = ... # 8| 0: [LocalVariableAccess] access to local variable i # 8| 1: [LambdaExpr] (...) => ... #-----| 2: (Parameters) # 8| 0: [Parameter] _ # 8| 1: [Parameter] _`1 # 8| 4: [IntLiteral] 42 # 9| 2: [ExprStmt] ...; # 9| 0: [AssignExpr] ... = ... # 9| 0: [LocalVariableAccess] access to local variable i # 9| 1: [LambdaExpr] (...) => ... #-----| 2: (Parameters) # 9| 0: [Parameter] _ # 9| -1: [TypeMention] int # 9| 1: [Parameter] _`1 # 9| -1: [TypeMention] int # 9| 4: [IntLiteral] 42 # 10| 3: [ExprStmt] ...; # 10| 0: [AssignExpr] ... = ... # 10| 0: [LocalVariableAccess] access to local variable i # 10| 1: [AnonymousMethodExpr] delegate(...) { ... } #-----| 2: (Parameters) # 10| 0: [Parameter] _ # 10| -1: [TypeMention] int # 10| 1: [Parameter] _`1 # 10| -1: [TypeMention] int # 10| 4: [BlockStmt] {...} # 10| 0: [ReturnStmt] return ...; # 10| 0: [IntLiteral] 0 LambdaModifier.cs: # 4| [Class] Class1 # 6| 5: [Method] M1 # 6| -1: [TypeMention] Task # 7| 4: [BlockStmt] {...} # 8| 0: [LocalFunctionStmt] m(...) # 8| 0: [LocalFunction] m #-----| 2: (Parameters) # 8| 0: [Parameter] f # 8| -1: [TypeMention] Func # 8| 1: [TypeMention] int # 8| 2: [TypeMention] int # 8| 4: [BlockStmt] {...} # 10| 1: [LocalConstantDeclStmt] const ... ...; # 10| 0: [LocalVariableDeclAndInitExpr] Int32 z = ... # 10| -1: [TypeMention] int # 10| 0: [LocalVariableAccess] access to local variable z # 10| 1: [IntLiteral] 10 # 11| 2: [ExprStmt] ...; # 11| 0: [LocalFunctionCall] call to local function m # 11| -1: [LocalFunctionAccess] access to local function m # 11| 0: [LambdaExpr] (...) => ... #-----| 2: (Parameters) # 11| 0: [Parameter] x # 11| 4: [AddExpr] ... + ... # 11| 0: [ParameterAccess] access to parameter x # 11| 1: [LocalVariableAccess] access to local variable z # 12| 3: [ExprStmt] ...; # 12| 0: [LocalFunctionCall] call to local function m # 12| -1: [LocalFunctionAccess] access to local function m # 12| 0: [LambdaExpr] (...) => ... #-----| 2: (Parameters) # 12| 0: [Parameter] x # 12| 4: [AddExpr] ... + ... # 12| 0: [ParameterAccess] access to parameter x # 12| 1: [LocalVariableAccess] access to local variable z # 13| 4: [ExprStmt] ...; # 13| 0: [LocalFunctionCall] call to local function m # 13| -1: [LocalFunctionAccess] access to local function m # 13| 0: [AnonymousMethodExpr] delegate(...) { ... } #-----| 2: (Parameters) # 13| 0: [Parameter] x # 13| -1: [TypeMention] int # 13| 4: [BlockStmt] {...} # 13| 0: [ReturnStmt] return ...; # 13| 0: [AddExpr] ... + ... # 13| 0: [ParameterAccess] access to parameter x # 13| 1: [LocalVariableAccess] access to local variable z # 15| 5: [ExprStmt] ...; # 15| 0: [AwaitExpr] await ... # 15| 0: [MethodCall] call to method Run # 15| -1: [TypeAccess] access to type Task # 15| 0: [TypeMention] Task # 15| 0: [LambdaExpr] (...) => ... # 15| 4: [BlockStmt] {...} # 15| 0: [ExprStmt] ...; # 15| 0: [AwaitExpr] await ... # 15| 0: [PropertyCall] access to property CompletedTask # 15| -1: [TypeAccess] access to type Task # 15| 0: [TypeMention] Task LocalFunction.cs: # 4| [Class] LocalFunction # 6| 5: [Method] M1 # 6| -1: [TypeMention] Task # 7| 4: [BlockStmt] {...} # 8| 0: [LocalVariableDeclStmt] ... ...; # 8| 0: [LocalVariableDeclAndInitExpr] Nullable i = ... # 8| -1: [TypeMention] int? # 8| 1: [TypeMention] int # 8| 0: [LocalVariableAccess] access to local variable i # 8| 1: [CastExpr] (...) ... # 8| 1: [IntLiteral] 1 # 9| 1: [LocalFunctionStmt] mul(...) # 9| 0: [LocalFunction] mul #-----| 2: (Parameters) # 9| 0: [Parameter] mul # 9| -1: [TypeMention] int # 10| 4: [BlockStmt] {...} # 11| 0: [ReturnStmt] return ...; # 11| 0: [MulExpr] ... * ... # 11| 0: [CastExpr] (...) ... # 11| 1: [ParameterAccess] access to parameter mul # 11| 1: [LocalVariableAccess] access to local variable i # 14| 2: [ExprStmt] ...; # 14| 0: [AwaitExpr] await ... # 14| 0: [LocalFunctionCall] call to local function mul # 14| -1: [LocalFunctionAccess] access to local function mul # 14| 0: [IntLiteral] 2 # 16| 3: [LocalFunctionStmt] localExtern(...) # 16| 0: [LocalFunction] localExtern # 19| 6: [Method] M2 # 19| -1: [TypeMention] Void # 20| 4: [BlockStmt] {...} # 21| 0: [LocalFunctionStmt] dup(...) # 21| 0: [LocalFunction] dup #-----| 0: (Attributes) # 21| 1: [Attribute] [Obsolete(...)] # 21| 0: [TypeMention] ObsoleteAttribute #-----| 2: (Parameters) # 22| 0: [Parameter] b # 22| -1: [TypeMention] bool #-----| 0: (Attributes) # 22| 1: [Attribute] [NotNullWhen(...)] # 22| -1: [TypeMention] NotNullWhenAttribute # 22| 0: [BoolLiteral] true # 22| 1: [Parameter] i # 22| -1: [TypeMention] int? # 22| 1: [TypeMention] int # 23| 4: [BlockStmt] {...} # 24| 0: [ReturnStmt] return ...; # 24| 0: [MulExpr] ... * ... # 24| 0: [CastExpr] (...) ... # 24| 1: [IntLiteral] 2 # 24| 1: [ParameterAccess] access to parameter i # 27| 1: [ExprStmt] ...; # 27| 0: [LocalFunctionCall] call to local function dup # 27| -1: [LocalFunctionAccess] access to local function dup # 27| 0: [BoolLiteral] true # 27| 1: [CastExpr] (...) ... # 27| 1: [IntLiteral] 42 NativeInt.cs: # 3| [Class] NativeInt # 5| 5: [Method] M1 # 5| -1: [TypeMention] Void #-----| 2: (Parameters) # 5| 0: [Parameter] j # 5| -1: [TypeMention] int # 5| 1: [Parameter] k # 5| -1: [TypeMention] uint # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; # 7| 0: [LocalVariableDeclAndInitExpr] IntPtr x = ... # 7| -1: [TypeMention] IntPtr # 7| 0: [LocalVariableAccess] access to local variable x # 7| 1: [CastExpr] (...) ... # 7| 1: [ParameterAccess] access to parameter j # 8| 1: [LocalVariableDeclStmt] ... ...; # 8| 0: [LocalVariableDeclAndInitExpr] IntPtr x0 = ... # 8| -1: [TypeMention] IntPtr # 8| 0: [LocalVariableAccess] access to local variable x0 # 8| 1: [CastExpr] (...) ... # 8| 0: [TypeAccess] access to type IntPtr # 8| 0: [TypeMention] IntPtr # 8| 1: [ParameterAccess] access to parameter j # 9| 2: [LocalVariableDeclStmt] ... ...; # 9| 0: [LocalVariableDeclAndInitExpr] IntPtr x1 = ... # 9| -1: [TypeMention] IntPtr # 9| 0: [LocalVariableAccess] access to local variable x1 # 9| 1: [CastExpr] (...) ... # 9| 0: [TypeAccess] access to type IntPtr # 9| 0: [TypeMention] IntPtr # 9| 1: [ParameterAccess] access to parameter j # 10| 3: [LocalVariableDeclStmt] ... ...; # 10| 0: [LocalVariableDeclAndInitExpr] UIntPtr y = ... # 10| -1: [TypeMention] UIntPtr # 10| 0: [LocalVariableAccess] access to local variable y # 10| 1: [CastExpr] (...) ... # 10| 1: [ParameterAccess] access to parameter k # 12| 4: [LocalConstantDeclStmt] const ... ...; # 12| 0: [LocalVariableDeclAndInitExpr] IntPtr i = ... # 12| -1: [TypeMention] IntPtr # 12| 0: [LocalVariableAccess] access to local variable i # 12| 1: [CastExpr] (...) ... # 12| 0: [TypeAccess] access to type IntPtr # 12| 0: [TypeMention] IntPtr # 12| 1: [IntLiteral] 42 # 15| 6: [Method] M2 # 15| -1: [TypeMention] Void # 16| 4: [BlockStmt] {...} # 17| 0: [LocalVariableDeclStmt] ... ...; # 17| 0: [LocalVariableDeclAndInitExpr] IntPtr x = ... # 17| -1: [TypeMention] IntPtr # 17| 0: [LocalVariableAccess] access to local variable x # 17| 1: [CastExpr] (...) ... # 17| 1: [IntLiteral] 3 # 18| 1: [LocalVariableDeclStmt] ... ...; # 18| 0: [LocalVariableDeclAndInitExpr] Int32 y = ... # 18| -1: [TypeMention] int # 18| 0: [LocalVariableAccess] access to local variable y # 18| 1: [IntLiteral] 3 # 19| 2: [LocalVariableDeclStmt] ... ...; # 19| 0: [LocalVariableDeclAndInitExpr] Int64 v = ... # 19| -1: [TypeMention] long # 19| 0: [LocalVariableAccess] access to local variable v # 19| 1: [CastExpr] (...) ... # 19| 1: [IntLiteral] 10 # 21| 3: [LocalVariableDeclStmt] ... ...; # 21| 0: [LocalVariableDeclAndInitExpr] Type test3 = ... # 21| -1: [TypeMention] Type # 21| 0: [LocalVariableAccess] access to local variable test3 # 21| 1: [TypeofExpr] typeof(...) # 21| 0: [TypeAccess] access to type IntPtr # 21| 0: [TypeMention] IntPtr # 22| 4: [LocalVariableDeclStmt] ... ...; # 22| 0: [LocalVariableDeclAndInitExpr] Type test4 = ... # 22| -1: [TypeMention] Type # 22| 0: [LocalVariableAccess] access to local variable test4 # 22| 1: [TypeofExpr] typeof(...) # 22| 0: [TypeAccess] access to type UIntPtr # 22| 0: [TypeMention] UIntPtr # 23| 5: [LocalVariableDeclStmt] ... ...; # 23| 0: [LocalVariableDeclAndInitExpr] Type test5 = ... # 23| -1: [TypeMention] Type # 23| 0: [LocalVariableAccess] access to local variable test5 # 23| 1: [MethodCall] call to method GetType # 23| -1: [AddExpr] ... + ... # 23| 0: [LocalVariableAccess] access to local variable x # 23| 1: [CastExpr] (...) ... # 23| 1: [IntLiteral] 1 # 24| 6: [LocalVariableDeclStmt] ... ...; # 24| 0: [LocalVariableDeclAndInitExpr] Type test6 = ... # 24| -1: [TypeMention] Type # 24| 0: [LocalVariableAccess] access to local variable test6 # 24| 1: [MethodCall] call to method GetType # 24| -1: [AddExpr] ... + ... # 24| 0: [LocalVariableAccess] access to local variable x # 24| 1: [CastExpr] (...) ... # 24| 1: [LocalVariableAccess] access to local variable y # 25| 7: [LocalVariableDeclStmt] ... ...; # 25| 0: [LocalVariableDeclAndInitExpr] Type test7 = ... # 25| -1: [TypeMention] Type # 25| 0: [LocalVariableAccess] access to local variable test7 # 25| 1: [MethodCall] call to method GetType # 25| -1: [AddExpr] ... + ... # 25| 0: [CastExpr] (...) ... # 25| 1: [LocalVariableAccess] access to local variable x # 25| 1: [LocalVariableAccess] access to local variable v ParenthesizedPattern.cs: # 3| [Class] T # 5| [Class] ParenthesizedPattern # 7| 5: [Method] M1 # 7| -1: [TypeMention] Void #-----| 2: (Parameters) # 7| 0: [Parameter] o # 7| -1: [TypeMention] object # 8| 4: [BlockStmt] {...} # 9| 0: [IfStmt] if (...) ... # 9| 0: [IsExpr] ... is ... # 9| 0: [ParameterAccess] access to parameter o # 9| 1: [RecursivePatternExpr] { ... } # 9| 0: [LocalVariableDeclExpr] Object p1 # 9| 3: [PropertyPatternExpr] { ... } # 10| 1: [BlockStmt] {...} # 13| 1: [IfStmt] if (...) ... # 13| 0: [IsExpr] ... is ... # 13| 0: [ParameterAccess] access to parameter o # 13| 1: [RecursivePatternExpr] { ... } # 13| 0: [LocalVariableDeclExpr] Object p2 # 13| 3: [PropertyPatternExpr] { ... } # 14| 1: [BlockStmt] {...} # 19| 6: [Method] M2 # 19| -1: [TypeMention] Void #-----| 2: (Parameters) # 19| 0: [Parameter] o # 19| -1: [TypeMention] object # 20| 4: [BlockStmt] {...} # 21| 0: [LocalVariableDeclStmt] ... ...; # 21| 0: [LocalVariableDeclAndInitExpr] Int32 r = ... # 21| -1: [TypeMention] int # 21| 0: [LocalVariableAccess] access to local variable r # 21| 1: [SwitchExpr] ... switch { ... } # 21| -1: [ParameterAccess] access to parameter o # 23| 0: [SwitchCaseExpr] ... => ... # 23| 0: [ConstantPatternExpr,IntLiteral] 1 # 23| 2: [IntLiteral] 1 # 24| 1: [SwitchCaseExpr] ... => ... # 24| 0: [ConstantPatternExpr,IntLiteral] 2 # 24| 2: [IntLiteral] 2 # 25| 2: [SwitchCaseExpr] ... => ... # 25| 0: [VariablePatternExpr] T t # 25| 0: [TypeMention] T # 25| 1: [IsExpr] ... is ... # 25| 0: [LocalVariableAccess] access to local variable t # 25| 1: [RecursivePatternExpr] { ... } # 25| 3: [PropertyPatternExpr] { ... } # 25| 2: [IntLiteral] 3 # 26| 3: [SwitchCaseExpr] ... => ... # 26| 0: [VariablePatternExpr] Object o1 # 26| 0: [TypeMention] object # 26| 1: [IsExpr] ... is ... # 26| 0: [LocalVariableAccess] access to local variable o1 # 26| 1: [RecursivePatternExpr] { ... } # 26| 3: [PropertyPatternExpr] { ... } # 26| 2: [IntLiteral] 4 # 27| 4: [SwitchCaseExpr] ... => ... # 27| 0: [TypeAccessPatternExpr] access to type String # 27| 0: [TypeMention] string # 27| 2: [IntLiteral] 5 RelationalPattern.cs: # 3| [Class] RelationalPattern # 5| 5: [Method] M1 # 5| -1: [TypeMention] bool #-----| 2: (Parameters) # 5| 0: [Parameter] c # 5| -1: [TypeMention] char # 6| 4: [IsExpr] ... is ... # 6| 0: [ParameterAccess] access to parameter c # 6| 1: [GEPattern] >= ... # 6| 0: [CharLiteral] a # 7| 6: [Method] M2 # 7| -1: [TypeMention] bool #-----| 2: (Parameters) # 7| 0: [Parameter] c # 7| -1: [TypeMention] char # 8| 4: [IsExpr] ... is ... # 8| 0: [ParameterAccess] access to parameter c # 8| 1: [GTPattern] > ... # 8| 0: [CharLiteral] a # 9| 7: [Method] M3 # 9| -1: [TypeMention] bool #-----| 2: (Parameters) # 9| 0: [Parameter] c # 9| -1: [TypeMention] char # 10| 4: [IsExpr] ... is ... # 10| 0: [ParameterAccess] access to parameter c # 10| 1: [LEPattern] <= ... # 10| 0: [CharLiteral] a # 11| 8: [Method] M4 # 11| -1: [TypeMention] bool #-----| 2: (Parameters) # 11| 0: [Parameter] c # 11| -1: [TypeMention] char # 12| 4: [IsExpr] ... is ... # 12| 0: [ParameterAccess] access to parameter c # 12| 1: [LTPattern] < ... # 12| 0: [CharLiteral] a # 14| 9: [Method] M5 # 14| -1: [TypeMention] string #-----| 2: (Parameters) # 14| 0: [Parameter] i # 14| -1: [TypeMention] int # 15| 4: [BlockStmt] {...} # 16| 0: [ReturnStmt] return ...; # 16| 0: [SwitchExpr] ... switch { ... } # 16| -1: [ParameterAccess] access to parameter i # 18| 0: [SwitchCaseExpr] ... => ... # 18| 0: [ConstantPatternExpr,IntLiteral] 1 # 18| 2: [StringLiteral] "1" # 19| 1: [SwitchCaseExpr] ... => ... # 19| 0: [GTPattern] > ... # 19| 0: [IntLiteral] 1 # 19| 2: [StringLiteral] ">1" # 20| 2: [SwitchCaseExpr] ... => ... # 20| 0: [DiscardPatternExpr] _ # 20| 2: [StringLiteral] "other" TargetType.cs: # 5| [Class] TargetType # 7| 5: [Method] M2 # 7| -1: [TypeMention] Void # 8| 4: [BlockStmt] {...} # 9| 0: [LocalVariableDeclStmt] ... ...; # 9| 0: [LocalVariableDeclAndInitExpr] Random rand = ... # 9| -1: [TypeMention] Random # 9| 0: [LocalVariableAccess] access to local variable rand # 9| 1: [ObjectCreation] object creation of type Random # 9| 0: [TypeMention] Random # 10| 1: [LocalVariableDeclStmt] ... ...; # 10| 0: [LocalVariableDeclAndInitExpr] Boolean condition = ... # 10| -1: [TypeMention] bool # 10| 0: [LocalVariableAccess] access to local variable condition # 10| 1: [GTExpr] ... > ... # 10| 0: [MethodCall] call to method NextDouble # 10| -1: [LocalVariableAccess] access to local variable rand # 10| 1: [DoubleLiteral] 0.5 # 12| 2: [LocalVariableDeclStmt] ... ...; # 12| 0: [LocalVariableDeclAndInitExpr] Nullable x0 = ... # 12| -1: [TypeMention] int? # 12| 1: [TypeMention] int # 12| 0: [LocalVariableAccess] access to local variable x0 # 12| 1: [CastExpr] (...) ... # 12| 1: [IntLiteral] 12 # 13| 3: [ExprStmt] ...; # 13| 0: [AssignExpr] ... = ... # 13| 0: [LocalVariableAccess] access to local variable x0 # 13| 1: [CastExpr] (...) ... # 13| 1: [IntLiteral] 13 # 14| 4: [LocalVariableDeclStmt] ... ...; # 14| 0: [LocalVariableDeclAndInitExpr] Nullable x1 = ... # 14| -1: [TypeMention] int? # 14| 1: [TypeMention] int # 14| 0: [LocalVariableAccess] access to local variable x1 # 14| 1: [NullLiteral] null # 16| 5: [LocalVariableDeclStmt] ... ...; # 16| 0: [LocalVariableDeclAndInitExpr] Nullable x2 = ... # 16| -1: [TypeMention] int? # 16| 1: [TypeMention] int # 16| 0: [LocalVariableAccess] access to local variable x2 # 16| 1: [ConditionalExpr] ... ? ... : ... # 16| 0: [LocalVariableAccess] access to local variable condition # 17| 1: [CastExpr] (...) ... # 17| 1: [IntLiteral] 12 # 18| 2: [NullLiteral] null # 20| 6: [LocalVariableDeclStmt] ... ...; # 20| 0: [LocalVariableDeclAndInitExpr] Nullable x3 = ... # 20| -1: [TypeMention] int? # 20| 1: [TypeMention] int # 20| 0: [LocalVariableAccess] access to local variable x3 # 20| 1: [ConditionalExpr] ... ? ... : ... # 20| 0: [LocalVariableAccess] access to local variable condition # 21| 1: [CastExpr] (...) ... # 21| 0: [TypeAccess] access to type Nullable # 21| 0: [TypeMention] int? # 21| 1: [TypeMention] int # 21| 1: [IntLiteral] 12 # 22| 2: [NullLiteral] null # 24| 7: [LocalVariableDeclStmt] ... ...; # 24| 0: [LocalVariableDeclAndInitExpr] Nullable x4 = ... # 24| -1: [TypeMention] int? # 24| 1: [TypeMention] int # 24| 0: [LocalVariableAccess] access to local variable x4 # 24| 1: [ConditionalExpr] ... ? ... : ... # 24| 0: [LocalVariableAccess] access to local variable condition # 25| 1: [CastExpr] (...) ... # 25| 1: [IntLiteral] 12 # 26| 2: [CastExpr] (...) ... # 26| 0: [TypeAccess] access to type Nullable # 26| 0: [TypeMention] int? # 26| 1: [TypeMention] int # 26| 1: [NullLiteral] null # 28| 8: [LocalVariableDeclStmt] ... ...; # 28| 0: [LocalVariableDeclAndInitExpr] IEnumerable xs0 = ... # 28| -1: [TypeMention] IEnumerable # 28| 1: [TypeMention] int # 28| 0: [LocalVariableAccess] access to local variable xs0 # 28| 1: [ObjectCreation] object creation of type List # 28| -2: [TypeMention] List # 28| 1: [TypeMention] int # 28| -1: [CollectionInitializer] { ..., ... } # 28| 0: [ElementInitializer] call to method Add # 28| 0: [IntLiteral] 0 # 28| 1: [ElementInitializer] call to method Add # 28| 0: [IntLiteral] 1 # 29| 9: [LocalVariableDeclStmt] ... ...; # 29| 0: [LocalVariableDeclAndInitExpr] IEnumerable xs1 = ... # 29| -1: [TypeMention] IEnumerable # 29| 1: [TypeMention] int # 29| 0: [LocalVariableAccess] access to local variable xs1 # 29| 1: [ArrayCreation] array creation of type Int32[] # 29| -2: [TypeMention] Int32[] # 29| 1: [TypeMention] int # 29| -1: [ArrayInitializer] { ..., ... } # 29| 0: [IntLiteral] 2 # 29| 1: [IntLiteral] 3 # 31| 10: [LocalVariableDeclStmt] ... ...; # 31| 0: [LocalVariableDeclAndInitExpr] IEnumerable xs2 = ... # 31| -1: [TypeMention] IEnumerable # 31| 1: [TypeMention] int # 31| 0: [LocalVariableAccess] access to local variable xs2 # 31| 1: [ConditionalExpr] ... ? ... : ... # 31| 0: [IsExpr] ... is ... # 31| 0: [LocalVariableAccess] access to local variable x2 # 31| 1: [ConstantPatternExpr,NullLiteral] null # 32| 1: [ObjectCreation] object creation of type List # 32| -2: [TypeMention] List # 32| 1: [TypeMention] int # 32| -1: [CollectionInitializer] { ..., ... } # 32| 0: [ElementInitializer] call to method Add # 32| 0: [IntLiteral] 0 # 32| 1: [ElementInitializer] call to method Add # 32| 0: [IntLiteral] 1 # 33| 2: [ArrayCreation] array creation of type Int32[] # 33| -2: [TypeMention] Int32[] # 33| 1: [TypeMention] int # 33| -1: [ArrayInitializer] { ..., ... } # 33| 0: [IntLiteral] 2 # 33| 1: [IntLiteral] 3 # 35| 11: [LocalVariableDeclStmt] ... ...; # 35| 0: [LocalVariableDeclAndInitExpr] Nullable c = ... # 35| -1: [TypeMention] int? # 35| 1: [TypeMention] int # 35| 0: [LocalVariableAccess] access to local variable c # 35| 1: [CastExpr] (...) ... # 35| 1: [ConditionalExpr] ... ? ... : ... # 35| 0: [LocalVariableAccess] access to local variable condition # 36| 1: [OperatorCall] call to operator implicit conversion # 36| 0: [ObjectCreation] object creation of type TargetType # 36| 0: [TypeMention] TargetType # 37| 2: [IntLiteral] 12 # 40| 6: [ImplicitConversionOperator] implicit conversion # 40| -1: [TypeMention] int #-----| 2: (Parameters) # 40| 0: [Parameter] d # 40| -1: [TypeMention] TargetType # 40| 4: [IntLiteral] 0 TypeParameterNullability.cs: # 1| [Interface] I1 # 3| [Class] A2 # 5| 5: [Method] F1 # 5| -1: [TypeMention] Void #-----| 1: (Type parameters) # 5| 0: [TypeParameter] T #-----| 2: (Parameters) # 5| 0: [Parameter] t # 5| 4: [BlockStmt] {...} # 6| 6: [Method] F2 # 6| -1: [TypeMention] Void #-----| 1: (Type parameters) # 6| 0: [TypeParameter] T #-----| 2: (Parameters) # 6| 0: [Parameter] t # 6| -1: [TypeMention] T? # 6| 1: [TypeMention] T # 6| 4: [BlockStmt] {...} # 7| 7: [Method] F3 # 7| -1: [TypeMention] Void #-----| 1: (Type parameters) # 7| 0: [TypeParameter] T #-----| 2: (Parameters) # 7| 0: [Parameter] t # 7| 4: [BlockStmt] {...} # 8| 8: [Method] F4 # 8| -1: [TypeMention] Void #-----| 1: (Type parameters) # 8| 0: [TypeParameter] T #-----| 2: (Parameters) # 8| 0: [Parameter] t # 8| 4: [BlockStmt] {...} # 9| 9: [Method] F5 # 9| -1: [TypeMention] Void #-----| 1: (Type parameters) # 9| 0: [TypeParameter] T #-----| 2: (Parameters) # 9| 0: [Parameter] t # 9| 4: [BlockStmt] {...} # 10| 10: [Method] F6 # 10| -1: [TypeMention] Void #-----| 1: (Type parameters) # 10| 0: [TypeParameter] T #-----| 2: (Parameters) # 10| 0: [Parameter] t # 10| -1: [TypeMention] T? # 10| 1: [TypeMention] T # 10| 4: [BlockStmt] {...} # 13| [Class] B2 #-----| 3: (Base types) # 13| 0: [TypeMention] A2 # 15| 5: [Method] F1 # 15| -1: [TypeMention] Void #-----| 1: (Type parameters) # 15| 0: [TypeParameter] T #-----| 2: (Parameters) # 15| 0: [Parameter] t # 15| 4: [BlockStmt] {...} # 16| 6: [Method] F2 # 16| -1: [TypeMention] Void #-----| 1: (Type parameters) # 16| 0: [TypeParameter] T #-----| 2: (Parameters) # 16| 0: [Parameter] t # 16| -1: [TypeMention] T? # 16| 1: [TypeMention] T # 16| 4: [BlockStmt] {...} # 17| 7: [Method] F3 # 17| -1: [TypeMention] Void #-----| 1: (Type parameters) # 17| 0: [TypeParameter] T #-----| 2: (Parameters) # 17| 0: [Parameter] t # 17| 4: [BlockStmt] {...} # 18| 8: [Method] F4 # 18| -1: [TypeMention] Void #-----| 1: (Type parameters) # 18| 0: [TypeParameter] T #-----| 2: (Parameters) # 18| 0: [Parameter] t # 18| 4: [BlockStmt] {...} # 19| 9: [Method] F6 # 19| -1: [TypeMention] Void #-----| 1: (Type parameters) # 19| 0: [TypeParameter] T #-----| 2: (Parameters) # 19| 0: [Parameter] t # 19| -1: [TypeMention] T? # 19| 1: [TypeMention] T # 19| 4: [BlockStmt] {...} # 22| [Class] B3 #-----| 3: (Base types) # 22| 0: [TypeMention] A2 # 24| 5: [Method] F2 # 24| -1: [TypeMention] Void #-----| 1: (Type parameters) # 24| 0: [TypeParameter] T #-----| 2: (Parameters) # 24| 0: [Parameter] t # 24| -1: [TypeMention] T? # 24| 1: [TypeMention] T # 24| 4: [BlockStmt] {...} TypePattern.cs: # 3| [Class] TypePattern # 5| 5: [Method] M1 # 5| -1: [TypeMention] object #-----| 2: (Parameters) # 5| 0: [Parameter] o1 # 5| -1: [TypeMention] object # 5| 1: [Parameter] o2 # 5| -1: [TypeMention] object # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; # 7| 0: [LocalVariableDeclAndInitExpr] (Object,Object) t = ... # 7| -1: [TypeMention] (object, object) # 7| 0: [LocalVariableAccess] access to local variable t # 7| 1: [TupleExpr] (..., ...) # 7| 0: [ParameterAccess] access to parameter o1 # 7| 1: [ParameterAccess] access to parameter o2 # 8| 1: [IfStmt] if (...) ... # 8| 0: [IsExpr] ... is ... # 8| 0: [LocalVariableAccess] access to local variable t # 8| 1: [RecursivePatternExpr] { ... } # 8| 2: [PositionalPatternExpr] ( ... ) # 8| 0: [TypeAccessPatternExpr] access to type Int32 # 8| 0: [TypeMention] int # 8| 1: [TypeAccessPatternExpr] access to type String # 8| 0: [TypeMention] string # 8| 1: [BlockStmt] {...} # 9| 2: [ReturnStmt] return ...; # 9| 0: [SwitchExpr] ... switch { ... } # 9| -1: [ParameterAccess] access to parameter o1 # 11| 0: [SwitchCaseExpr] ... => ... # 11| 0: [TypeAccessPatternExpr] access to type Int32 # 11| 0: [TypeMention] int # 11| 2: [CastExpr] (...) ... # 11| 1: [IntLiteral] 1 # 12| 1: [SwitchCaseExpr] ... => ... # 12| 0: [VariablePatternExpr] Double d # 12| 0: [TypeMention] double # 12| 2: [CastExpr] (...) ... # 12| 1: [LocalVariableAccess] access to local variable d # 13| 2: [SwitchCaseExpr] ... => ... # 13| 0: [TypeAccessPatternExpr] access to type String # 13| 0: [TypeMention] string # 13| 2: [CastExpr] (...) ... # 13| 1: [IntLiteral] 3 # 14| 3: [SwitchCaseExpr] ... => ... # 14| 0: [VariablePatternExpr] Object o # 14| 0: [TypeMention] object # 14| 2: [LocalVariableAccess] access to local variable o