Files
codeql/csharp/ql/test/library-tests/csharp9/PrintAst.expected

686 lines
31 KiB
Plaintext

Discard.cs:
# 3| [Class] Discard
# 5| 5: [Method] M1
# 5| -1: [TypeMention] Void
# 6| 4: [BlockStmt] {...}
# 7| 0: [LocalVariableDeclStmt] ... ...;
# 7| 0: [LocalVariableDeclAndInitExpr] Func<Int32,Int32,Int32> i = ...
# 7| -1: [TypeMention] Func<Int32, Int32, Int32>
# 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<Int32, Int32>
# 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<Int32> 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<Int32> 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<Int32> 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<Int32> 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<Int32> 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<Int32>
# 21| 0: [TypeMention] int?
# 21| 1: [TypeMention] int
# 21| 1: [IntLiteral] 12
# 22| 2: [NullLiteral] null
# 24| 7: [LocalVariableDeclStmt] ... ...;
# 24| 0: [LocalVariableDeclAndInitExpr] Nullable<Int32> 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<Int32>
# 26| 0: [TypeMention] int?
# 26| 1: [TypeMention] int
# 26| 1: [NullLiteral] null
# 28| 8: [LocalVariableDeclStmt] ... ...;
# 28| 0: [LocalVariableDeclAndInitExpr] IEnumerable<Int32> xs0 = ...
# 28| -1: [TypeMention] IEnumerable<Int32>
# 28| 1: [TypeMention] int
# 28| 0: [LocalVariableAccess] access to local variable xs0
# 28| 1: [ObjectCreation] object creation of type List<Int32>
# 28| -2: [TypeMention] List<Int32>
# 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<Int32> xs1 = ...
# 29| -1: [TypeMention] IEnumerable<Int32>
# 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<Int32> xs2 = ...
# 31| -1: [TypeMention] IEnumerable<Int32>
# 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<Int32>
# 32| -2: [TypeMention] List<Int32>
# 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<Int32> 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