Files
codeql/csharp/ql/test/library-tests/csharp9/PrintAst.expected
2025-12-02 13:49:16 +01:00

1573 lines
69 KiB
Plaintext

AnonymousObjectCreation.cs:
# 5| [Class] AnonObj
# 7| 6: [Field] l
# 7| -1: [TypeMention] List<AnonObj>
# 7| 1: [TypeMention] AnonObj
# 7| 1: [CastExpr] (...) ...
# 7| 1: [ObjectCreation] object creation of type List<AnonObj>
# 9| 7: [Property] Prop1
# 9| -1: [TypeMention] int
# 9| 3: [Getter] get_Prop1
# 9| 4: [Setter] set_Prop1
#-----| 2: (Parameters)
# 9| 0: [Parameter] value
# 11| 8: [Method] M1
# 11| -1: [TypeMention] AnonObj
#-----| 2: (Parameters)
# 11| 0: [Parameter] t
# 11| -1: [TypeMention] AnonObj
# 12| 4: [BlockStmt] {...}
# 13| 0: [ExprStmt] ...;
# 13| 0: [MethodCall] call to method M1
# 13| -1: [ThisAccess] this access
# 13| 0: [CastExpr] (...) ...
# 13| 1: [ObjectCreation] object creation of type AnonObj
# 13| -1: [ObjectInitializer] { ..., ... }
# 13| 0: [MemberInitializer] ... = ...
# 13| 0: [PropertyCall] access to property Prop1
# 13| 1: [IntLiteral] 1
# 14| 1: [ReturnStmt] return ...;
# 14| 0: [CastExpr] (...) ...
# 14| 1: [ObjectCreation] object creation of type AnonObj
# 17| 9: [DelegateType] D
#-----| 2: (Parameters)
# 17| 0: [Parameter] x
# 17| -1: [TypeMention] int
# 19| 10: [Method] M2
# 19| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 19| 0: [Parameter] x
# 19| -1: [TypeMention] int
# 19| 4: [BlockStmt] {...}
# 21| 11: [Method] GetM
# 21| -1: [TypeMention] D
# 21| 4: [BlockStmt] {...}
# 21| 0: [ReturnStmt] return ...;
# 21| 0: [CastExpr] (...) ...
# 21| 1: [ExplicitDelegateCreation] delegate creation of type D
# 21| 0: [ImplicitDelegateCreation] delegate creation of type D
# 21| 0: [MethodAccess] access to method M2
# 23| 12: [Method] MethodAdd
# 23| -1: [TypeMention] Void
# 24| 4: [BlockStmt] {...}
# 25| 0: [LocalVariableDeclStmt] ... ...;
# 25| 0: [LocalVariableDeclAndInitExpr] List<Int32> list = ...
# 25| -1: [TypeMention] List<int>
# 25| 1: [TypeMention] int
# 25| 0: [LocalVariableAccess] access to local variable list
# 25| 1: [CastExpr] (...) ...
# 25| 1: [ObjectCreation] object creation of type List<Int32>
BinaryPattern.cs:
# 3| [Class] BinaryPattern
# 5| 6: [Property] P1
# 5| -1: [TypeMention] int
# 5| 3: [Getter] get_P1
# 5| 4: [Setter] set_P1
#-----| 2: (Parameters)
# 5| 0: [Parameter] value
# 7| 7: [Method] M1
# 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: [OrPatternExpr] ... or ...
# 8| 0: [CharLiteral,ConstantPatternExpr] a
# 8| 1: [CharLiteral,ConstantPatternExpr] b
# 9| 8: [Method] M2
# 9| -1: [TypeMention] bool
#-----| 2: (Parameters)
# 9| 0: [Parameter] c
# 9| -1: [TypeMention] object
# 10| 4: [IsExpr] ... is ...
# 10| 0: [ParameterAccess] access to parameter c
# 10| 1: [AndPatternExpr] ... and ...
# 10| 0: [VariablePatternExpr] Object o
# 10| 0: [TypeMention] object
# 10| 1: [RecursivePatternExpr] { ... }
# 10| 0: [VariablePatternExpr] BinaryPattern u
# 10| 1: [TypeAccessPatternExpr] access to type BinaryPattern
# 10| 0: [TypeMention] BinaryPattern
# 10| 3: [PropertyPatternExpr] { ... }
# 10| 0: [ConstantPatternExpr,IntLiteral,LabeledPatternExpr] 1
# 11| 9: [Method] M3
# 11| -1: [TypeMention] bool
#-----| 2: (Parameters)
# 11| 0: [Parameter] c
# 11| -1: [TypeMention] object
# 12| 4: [IsExpr] ... is ...
# 12| 0: [ParameterAccess] access to parameter c
# 12| 1: [AndPatternExpr] ... and ...
# 12| 0: [VariablePatternExpr] Object o
# 12| 0: [TypeMention] object
# 12| 1: [VariablePatternExpr] BinaryPattern u
# 12| 0: [TypeMention] BinaryPattern
# 14| 10: [Method] M4
# 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: [OrPatternExpr] ... or ...
# 18| 0: [ConstantPatternExpr,IntLiteral] 1
# 18| 1: [ConstantPatternExpr,IntLiteral] 2
# 18| 2: [StringLiteralUtf16] "1 or 2"
# 19| 1: [SwitchCaseExpr] ... => ...
# 19| 0: [DiscardPatternExpr] _
# 19| 2: [StringLiteralUtf16] "other"
CovariantReturn.cs:
# 1| [Class] A
# 3| 6: [Method] M1
# 3| -1: [TypeMention] A
# 3| 4: [BlockStmt] {...}
# 3| 0: [ThrowStmt] throw ...;
# 3| 0: [NullLiteral] null
# 6| [Class] B
#-----| 3: (Base types)
# 6| 0: [TypeMention] A
# 8| 6: [Method] M1
# 8| -1: [TypeMention] B
# 8| 4: [BlockStmt] {...}
# 8| 0: [ThrowStmt] throw ...;
# 8| 0: [NullLiteral] null
Discard.cs:
# 3| [Class] Discard
# 5| 6: [Method] M1
# 5| -1: [TypeMention] Void
# 6| 4: [BlockStmt] {...}
# 7| 0: [LocalVariableDeclStmt] ... ...;
# 7| 0: [LocalVariableDeclAndInitExpr] Func<Int32,Int32,Int32> i = ...
# 7| -1: [TypeMention] Func<int, int, int>
# 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
ForeachExtension.cs:
# 6| [Class] Extensions
# 8| 5: [ExtensionMethod] GetEnumerator`1
# 8| -1: [TypeMention] IEnumerator<T>
# 8| 1: [TypeMention] T
#-----| 1: (Type parameters)
# 8| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 8| 0: [Parameter] enumerator
# 8| -1: [TypeMention] IEnumerator<T>
# 8| 1: [TypeMention] T
# 8| 4: [ParameterAccess] access to parameter enumerator
# 9| 7: [ExtensionMethod] GetAsyncEnumerator`1
# 9| -1: [TypeMention] IAsyncEnumerator<T>
# 9| 1: [TypeMention] T
#-----| 1: (Type parameters)
# 9| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 9| 0: [Parameter] enumerator
# 9| -1: [TypeMention] IAsyncEnumerator<T>
# 9| 1: [TypeMention] T
# 9| 4: [ParameterAccess] access to parameter enumerator
# 10| 8: [ExtensionMethod] GetEnumerator
# 10| -1: [TypeMention] IEnumerator<int>
# 10| 1: [TypeMention] int
#-----| 2: (Parameters)
# 10| 0: [Parameter] count
# 10| -1: [TypeMention] int
# 11| 4: [BlockStmt] {...}
# 12| 0: [ForStmt] for (...;...;...) ...
# 12| -1: [LocalVariableDeclAndInitExpr] Int32 i = ...
# 12| -1: [TypeMention] int
# 12| 0: [LocalVariableAccess] access to local variable i
# 12| 1: [IntLiteral] 0
# 12| 0: [LTExpr] ... < ...
# 12| 0: [LocalVariableAccess] access to local variable i
# 12| 1: [ParameterAccess] access to parameter count
# 12| 1: [PostIncrExpr] ...++
# 12| 0: [LocalVariableAccess] access to local variable i
# 13| 2: [BlockStmt] {...}
# 14| 0: [YieldReturnStmt] yield return ...;
# 14| 0: [LocalVariableAccess] access to local variable i
# 19| [Class] Program
# 21| 6: [Method] Main
# 21| -1: [TypeMention] Task
# 22| 4: [BlockStmt] {...}
# 23| 0: [LocalVariableDeclStmt] ... ...;
# 23| 0: [LocalVariableDeclAndInitExpr] IEnumerator<Int32> enumerator1 = ...
# 23| -1: [TypeMention] IEnumerator<int>
# 23| 1: [TypeMention] int
# 23| 0: [LocalVariableAccess] access to local variable enumerator1
# 23| 1: [MethodCall] call to method GetEnumerator
# 23| -1: [MethodCall] call to method Range
# 23| -1: [TypeAccess] access to type Enumerable
# 23| 0: [TypeMention] Enumerable
# 23| 0: [IntLiteral] 0
# 23| 1: [IntLiteral] 10
# 24| 1: [ForeachStmt] foreach (... ... in ...) ...
# 24| 0: [LocalVariableDeclExpr] Int32 item
# 24| 0: [TypeMention] int
# 24| 1: [LocalVariableAccess] access to local variable enumerator1
# 25| 2: [BlockStmt] {...}
# 28| 2: [LocalVariableDeclStmt] ... ...;
# 28| 0: [LocalVariableDeclAndInitExpr] IAsyncEnumerator<Int32> enumerator2 = ...
# 28| -1: [TypeMention] IAsyncEnumerator<int>
# 28| 1: [TypeMention] int
# 28| 0: [LocalVariableAccess] access to local variable enumerator2
# 28| 1: [MethodCall] call to method GetAsyncEnumerator
# 29| 3: [ForeachStmt] foreach (... ... in ...) ...
# 29| 0: [LocalVariableDeclExpr] Int32 item
# 29| 0: [TypeMention] int
# 29| 1: [LocalVariableAccess] access to local variable enumerator2
# 30| 2: [BlockStmt] {...}
# 33| 4: [ForeachStmt] foreach (... ... in ...) ...
# 33| 0: [LocalVariableDeclExpr] Int32 item
# 33| 0: [TypeMention] int
# 33| 1: [IntLiteral] 42
# 34| 2: [BlockStmt] {...}
# 37| 5: [ForeachStmt] foreach (... ... in ...) ...
# 37| 0: [LocalVariableDeclExpr] Int32 i
# 37| 0: [TypeMention] int
# 37| 1: [ArrayCreation] array creation of type Int32[]
# 37| -2: [TypeMention] Int32[]
# 37| 1: [TypeMention] int
# 37| -1: [ArrayInitializer] { ..., ... }
# 37| 0: [IntLiteral] 1
# 37| 1: [IntLiteral] 2
# 37| 2: [IntLiteral] 3
# 38| 2: [BlockStmt] {...}
# 42| 7: [Method] GetAsyncEnumerator
# 42| -1: [TypeMention] IAsyncEnumerator<int>
# 42| 1: [TypeMention] int
# 43| 4: [BlockStmt] {...}
# 44| 0: [YieldReturnStmt] yield return ...;
# 44| 0: [IntLiteral] 0
# 45| 1: [ExprStmt] ...;
# 45| 0: [AwaitExpr] await ...
# 45| 0: [MethodCall] call to method Delay
# 45| -1: [TypeAccess] access to type Task
# 45| 0: [TypeMention] Task
# 45| 0: [IntLiteral] 1
# 46| 2: [YieldReturnStmt] yield return ...;
# 46| 0: [IntLiteral] 1
FunctionPointer.cs:
# 3| [Class] FnPointer
# 5| 6: [Class] Program
# 7| 5: [Field] pointer
# 7| -1: [TypeMention] delegate* default<Int32>
# 7| 1: [AddressOfExpr] &...
# 7| 0: [MethodAccess] access to method M0
# 9| 6: [Method] M0
# 9| -1: [TypeMention] int
# 10| 4: [BlockStmt] {...}
# 11| 0: [ReturnStmt] return ...;
# 11| 0: [IntLiteral] 0
# 14| 7: [Method] M1
# 14| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 14| 0: [Parameter] f
# 14| -1: [TypeMention] delegate* default<Int32 ref,Object out,Int32 ref readonly>
# 15| 4: [BlockStmt] {...}
# 16| 0: [LocalVariableDeclStmt] ... ...;
# 16| 0: [LocalVariableDeclAndInitExpr] Int32 i = ...
# 16| -1: [TypeMention] int
# 16| 0: [LocalVariableAccess] access to local variable i
# 16| 1: [IntLiteral] 42
# 17| 1: [LocalVariableDeclStmt] ... ...;
# 17| 0: [LocalVariableDeclAndInitExpr] Int32 j = ...
# 17| -1: [TypeMention] int
# 17| 0: [LocalVariableAccess] access to local variable j
# 17| 1: [FunctionPointerCall] function pointer call
# 17| -1: [ParameterAccess] access to parameter f
# 17| 0: [LocalVariableAccess] access to local variable i
# 17| 1: [LocalVariableAccess,LocalVariableDeclExpr] Object o
# 20| 8: [Method] M2`1
# 20| -1: [TypeMention] Void
#-----| 1: (Type parameters)
# 20| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 20| 0: [Parameter] f
# 20| -1: [TypeMention] delegate* stdcall<Int32 ref,Object out,T,Void>
# 21| 4: [BlockStmt] {...}
# 22| 0: [LocalVariableDeclStmt] ... ...;
# 22| 0: [LocalVariableDeclAndInitExpr] Int32 i = ...
# 22| -1: [TypeMention] int
# 22| 0: [LocalVariableAccess] access to local variable i
# 22| 1: [IntLiteral] 42
# 23| 1: [ExprStmt] ...;
# 23| 0: [FunctionPointerCall] function pointer call
# 23| -1: [ParameterAccess] access to parameter f
# 23| 0: [LocalVariableAccess] access to local variable i
# 23| 1: [LocalVariableAccess,LocalVariableDeclExpr] Object o
# 23| 2: [ObjectCreation] object creation of type T
# 23| 0: [TypeMention] T
# 26| 9: [Method] M3
# 26| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 26| 0: [Parameter] f
# 26| -1: [TypeMention] delegate* default<Int32 ref,Object out,Int32 in,Int32 ref>
# 27| 4: [BlockStmt] {...}
# 28| 0: [LocalVariableDeclStmt] ... ...;
# 28| 0: [LocalVariableDeclAndInitExpr] Int32 i = ...
# 28| -1: [TypeMention] int
# 28| 0: [LocalVariableAccess] access to local variable i
# 28| 1: [IntLiteral] 42
# 29| 1: [LocalVariableDeclStmt] ... ...;
# 29| 0: [LocalVariableDeclAndInitExpr] Int32 j = ...
# 29| -1: [TypeMention] null
# 29| 0: [LocalVariableAccess] access to local variable j
# 29| 1: [RefExpr] ref ...
# 29| 0: [FunctionPointerCall] function pointer call
# 29| -1: [ParameterAccess] access to parameter f
# 29| 0: [LocalVariableAccess] access to local variable i
# 29| 1: [LocalVariableAccess,LocalVariableDeclExpr] Object o
# 29| 2: [LocalVariableAccess] access to local variable i
# 32| 10: [Method] M4`1
# 32| -1: [TypeMention] Void
#-----| 1: (Type parameters)
# 32| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 32| 0: [Parameter] f
# 32| -1: [TypeMention] delegate* default<T,Int32>
# 33| 4: [BlockStmt] {...}
# 34| 0: [LocalVariableDeclStmt] ... ...;
# 34| 0: [LocalVariableDeclAndInitExpr] Int32 j = ...
# 34| -1: [TypeMention] int
# 34| 0: [LocalVariableAccess] access to local variable j
# 34| 1: [FunctionPointerCall] function pointer call
# 34| -1: [ParameterAccess] access to parameter f
# 34| 0: [ObjectCreation] object creation of type T
# 34| 0: [TypeMention] T
# 37| 11: [Method] M5
# 37| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 37| 0: [Parameter] f
# 37| -1: [TypeMention] delegate* default<B,A>
# 37| 1: [Parameter] ff
# 37| -1: [TypeMention] delegate* default<A,B>
# 38| 4: [BlockStmt] {...}
# 39| 0: [ExprStmt] ...;
# 39| 0: [MethodCall] call to method M5
# 39| 0: [CastExpr] (...) ...
# 39| 1: [ParameterAccess] access to parameter ff
# 39| 1: [ParameterAccess] access to parameter ff
# 42| 12: [Method] M6
# 42| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 42| 0: [Parameter] f
# 42| -1: [TypeMention] delegate* default<Int32*,Void*>
# 42| 1: [Parameter] ff
# 42| -1: [TypeMention] delegate* default<Void*,Int32*>
# 43| 4: [BlockStmt] {...}
# 44| 0: [ExprStmt] ...;
# 44| 0: [MethodCall] call to method M6
# 44| 0: [CastExpr] (...) ...
# 44| 1: [ParameterAccess] access to parameter ff
# 44| 1: [ParameterAccess] access to parameter ff
# 47| 13: [Class] A
# 48| 14: [Class] B
#-----| 3: (Base types)
# 48| 0: [TypeMention] A
InitOnlyProperty.cs:
# 3| [Class] Base
# 5| 6: [Property] Prop0
# 5| -1: [TypeMention] int
# 5| 3: [Getter] get_Prop0
# 5| 4: [BlockStmt] {...}
# 5| 0: [ReturnStmt] return ...;
# 5| 0: [IntLiteral] 1
# 5| 4: [Setter] set_Prop0
#-----| 2: (Parameters)
# 5| 0: [Parameter] value
# 5| 4: [BlockStmt] {...}
# 5| 0: [ExprStmt] ...;
# 5| 0: [AssignExpr] ... = ...
# 5| 0: [PropertyCall] access to property Prop1
# 5| 1: [ParameterAccess] access to parameter value
# 6| 7: [Property] Prop1
# 6| -1: [TypeMention] int
# 6| 3: [Getter] get_Prop1
# 6| 4: [Setter] set_Prop1
#-----| 2: (Parameters)
# 6| 0: [Parameter] value
# 7| 8: [Property] Prop2
# 7| -1: [TypeMention] int
# 7| 3: [Getter] get_Prop2
# 7| 4: [Setter] set_Prop2
#-----| 2: (Parameters)
# 7| 0: [Parameter] value
# 11| [Class] Derived
#-----| 3: (Base types)
# 11| 0: [TypeMention] Base
# 13| 6: [Property] Prop1
# 13| -1: [TypeMention] int
# 13| 3: [Getter] get_Prop1
# 13| 4: [Setter] set_Prop1
#-----| 2: (Parameters)
# 13| 0: [Parameter] value
# 14| 7: [Property] Prop2
# 14| -1: [TypeMention] int
# 16| 3: [Getter] get_Prop2
# 16| 4: [BlockStmt] {...}
# 16| 0: [ReturnStmt] return ...;
# 16| 0: [IntLiteral] 0
# 17| 4: [Setter] set_Prop2
#-----| 2: (Parameters)
# 17| 0: [Parameter] value
# 18| 4: [BlockStmt] {...}
# 19| 0: [ExprStmt] ...;
# 19| 0: [MethodCall] call to method WriteLine
# 19| -1: [TypeAccess] access to type Console
# 19| 0: [TypeMention] Console
# 19| 0: [ParameterAccess] access to parameter value
# 20| 1: [ExprStmt] ...;
# 20| 0: [AssignExpr] ... = ...
# 20| 0: [PropertyCall] access to property Prop1
# 20| 1: [ParameterAccess] access to parameter value
# 21| 2: [ExprStmt] ...;
# 21| 0: [AssignExpr] ... = ...
# 21| 0: [PropertyCall] access to property Prop0
# 21| 1: [ParameterAccess] access to parameter value
# 26| [Class] C1
# 28| 6: [Method] M1
# 28| -1: [TypeMention] Void
# 29| 4: [BlockStmt] {...}
# 30| 0: [LocalVariableDeclStmt] ... ...;
# 30| 0: [LocalVariableDeclAndInitExpr] Derived d = ...
# 30| -1: [TypeMention] Derived
# 30| 0: [LocalVariableAccess] access to local variable d
# 30| 1: [ObjectCreation] object creation of type Derived
# 30| -2: [TypeMention] Derived
# 31| -1: [ObjectInitializer] { ..., ... }
# 32| 0: [MemberInitializer] ... = ...
# 32| 0: [PropertyCall] access to property Prop1
# 32| 1: [IntLiteral] 1
# 33| 1: [MemberInitializer] ... = ...
# 33| 0: [PropertyCall] access to property Prop2
# 33| 1: [IntLiteral] 2
# 34| 2: [MemberInitializer] ... = ...
# 34| 0: [PropertyCall] access to property Prop0
# 34| 1: [IntLiteral] 0
IsExternalInit.cs:
# 4| [NamespaceDeclaration] namespace ... { ... }
# 6| 1: [Class] IsExternalInit
LambdaModifier.cs:
# 4| [Class] Class1
# 6| 6: [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<int, int>
# 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| 6: [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| 7: [Method] M2
# 19| -1: [TypeMention] Void
# 20| 4: [BlockStmt] {...}
# 21| 0: [LocalFunctionStmt] dup(...)
# 21| 0: [LocalFunction] dup
#-----| 0: (Attributes)
# 21| 1: [DefaultAttribute] [Obsolete(...)]
# 21| 0: [TypeMention] ObsoleteAttribute
#-----| 2: (Parameters)
# 22| 0: [Parameter] b
# 22| -1: [TypeMention] bool
#-----| 0: (Attributes)
# 22| 1: [DefaultAttribute] [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| 6: [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| 7: [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| 6: [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: [VariablePatternExpr] 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: [VariablePatternExpr] Object p2
# 13| 3: [PropertyPatternExpr] { ... }
# 14| 1: [BlockStmt] {...}
# 18| 7: [Method] M2
# 18| -1: [TypeMention] Void
#-----| 2: (Parameters)
# 18| 0: [Parameter] o
# 18| -1: [TypeMention] object
# 19| 4: [BlockStmt] {...}
# 20| 0: [LocalVariableDeclStmt] ... ...;
# 20| 0: [LocalVariableDeclAndInitExpr] Int32 r = ...
# 20| -1: [TypeMention] int
# 20| 0: [LocalVariableAccess] access to local variable r
# 20| 1: [SwitchExpr] ... switch { ... }
# 20| -1: [ParameterAccess] access to parameter o
# 22| 0: [SwitchCaseExpr] ... => ...
# 22| 0: [ConstantPatternExpr,IntLiteral] 1
# 22| 2: [IntLiteral] 1
# 23| 1: [SwitchCaseExpr] ... => ...
# 23| 0: [ConstantPatternExpr,IntLiteral] 2
# 23| 2: [IntLiteral] 2
# 24| 2: [SwitchCaseExpr] ... => ...
# 24| 0: [VariablePatternExpr] T t
# 24| 0: [TypeMention] T
# 24| 1: [IsExpr] ... is ...
# 24| 0: [LocalVariableAccess] access to local variable t
# 24| 1: [RecursivePatternExpr] { ... }
# 24| 3: [PropertyPatternExpr] { ... }
# 24| 2: [IntLiteral] 3
# 25| 3: [SwitchCaseExpr] ... => ...
# 25| 0: [VariablePatternExpr] Object o1
# 25| 0: [TypeMention] object
# 25| 1: [IsExpr] ... is ...
# 25| 0: [LocalVariableAccess] access to local variable o1
# 25| 1: [RecursivePatternExpr] { ... }
# 25| 3: [PropertyPatternExpr] { ... }
# 25| 2: [IntLiteral] 4
# 26| 4: [SwitchCaseExpr] ... => ...
# 26| 0: [TypeAccessPatternExpr] access to type String
# 26| 0: [TypeMention] string
# 26| 2: [IntLiteral] 5
Record.cs:
# 4| [RecordClass] Person
# 4| 12: [NEOperator] !=
#-----| 2: (Parameters)
# 4| 0: [Parameter] left
# 4| 1: [Parameter] right
# 4| 13: [EQOperator] ==
#-----| 2: (Parameters)
# 4| 0: [Parameter] left
# 4| 1: [Parameter] right
# 4| 14: [Property] EqualityContract
# 4| 3: [Getter] get_EqualityContract
# 6| 15: [Property] LastName
# 6| -1: [TypeMention] string
# 6| 3: [Getter] get_LastName
# 7| 16: [Property] FirstName
# 7| -1: [TypeMention] string
# 7| 3: [Getter] get_FirstName
# 9| 17: [InstanceConstructor] Person
#-----| 2: (Parameters)
# 9| 0: [Parameter] first
# 9| -1: [TypeMention] string
# 9| 1: [Parameter] last
# 9| -1: [TypeMention] string
# 9| 4: [AssignExpr] ... = ...
# 9| 0: [TupleExpr] (..., ...)
# 9| 0: [PropertyCall] access to property FirstName
# 9| 1: [PropertyCall] access to property LastName
# 9| 1: [TupleExpr] (..., ...)
# 9| 0: [ParameterAccess] access to parameter first
# 9| 1: [ParameterAccess] access to parameter last
# 12| [RecordClass] Teacher
# 12| 13: [NEOperator] !=
#-----| 2: (Parameters)
# 12| 0: [Parameter] left
# 12| 1: [Parameter] right
# 12| 14: [EQOperator] ==
#-----| 2: (Parameters)
# 12| 0: [Parameter] left
# 12| 1: [Parameter] right
# 12| 15: [Property] EqualityContract
# 12| 3: [Getter] get_EqualityContract
# 14| 16: [Property] Subject
# 14| -1: [TypeMention] string
# 14| 3: [Getter] get_Subject
# 16| 17: [InstanceConstructor] Teacher
#-----| 2: (Parameters)
# 16| 0: [Parameter] first
# 16| -1: [TypeMention] string
# 16| 1: [Parameter] last
# 16| -1: [TypeMention] string
# 16| 2: [Parameter] sub
# 16| -1: [TypeMention] string
# 17| 3: [ConstructorInitializer] call to constructor Person
# 17| 0: [ParameterAccess] access to parameter first
# 17| 1: [ParameterAccess] access to parameter last
# 17| 4: [AssignExpr] ... = ...
# 17| 0: [PropertyCall] access to property Subject
# 17| 1: [ParameterAccess] access to parameter sub
# 20| [RecordClass] Student
# 20| 13: [NEOperator] !=
#-----| 2: (Parameters)
# 20| 0: [Parameter] left
# 20| 1: [Parameter] right
# 20| 14: [EQOperator] ==
#-----| 2: (Parameters)
# 20| 0: [Parameter] left
# 20| 1: [Parameter] right
# 20| 15: [Property] EqualityContract
# 20| 3: [Getter] get_EqualityContract
# 22| 16: [Property] Level
# 22| -1: [TypeMention] int
# 22| 3: [Getter] get_Level
# 24| 17: [InstanceConstructor] Student
#-----| 2: (Parameters)
# 24| 0: [Parameter] first
# 24| -1: [TypeMention] string
# 24| 1: [Parameter] last
# 24| -1: [TypeMention] string
# 24| 2: [Parameter] level
# 24| -1: [TypeMention] int
# 24| 3: [ConstructorInitializer] call to constructor Person
# 24| 0: [ParameterAccess] access to parameter first
# 24| 1: [ParameterAccess] access to parameter last
# 24| 4: [AssignExpr] ... = ...
# 24| 0: [PropertyCall] access to property Level
# 24| 1: [ParameterAccess] access to parameter level
# 27| [RecordClass] Person1
# 27| 13: [NEOperator] !=
#-----| 2: (Parameters)
# 27| 0: [Parameter] left
# 27| 1: [Parameter] right
# 27| 14: [EQOperator] ==
#-----| 2: (Parameters)
# 27| 0: [Parameter] left
# 27| 1: [Parameter] right
# 27| 15: [Property] EqualityContract
# 27| 3: [Getter] get_EqualityContract
# 27| 16: [InstanceConstructor,PrimaryConstructor] Person1
#-----| 2: (Parameters)
# 27| 0: [Parameter] FirstName
# 27| -1: [TypeMention] string
# 27| 1: [Parameter] LastName
# 27| -1: [TypeMention] string
# 27| 17: [Property] FirstName
# 27| 3: [Getter] get_FirstName
# 27| 4: [Setter] set_FirstName
#-----| 2: (Parameters)
# 27| 0: [Parameter] value
# 27| 18: [Property] LastName
# 27| 3: [Getter] get_LastName
# 27| 4: [Setter] set_LastName
#-----| 2: (Parameters)
# 27| 0: [Parameter] value
# 29| [RecordClass] Teacher1
# 29| 14: [NEOperator] !=
#-----| 2: (Parameters)
# 29| 0: [Parameter] left
# 29| 1: [Parameter] right
# 29| 15: [EQOperator] ==
#-----| 2: (Parameters)
# 29| 0: [Parameter] left
# 29| 1: [Parameter] right
# 29| 16: [Property] EqualityContract
# 29| 3: [Getter] get_EqualityContract
# 29| 17: [InstanceConstructor,PrimaryConstructor] Teacher1
#-----| 2: (Parameters)
# 29| 0: [Parameter] FirstName
# 29| -1: [TypeMention] string
# 29| 1: [Parameter] LastName
# 29| -1: [TypeMention] string
# 29| 2: [Parameter] Subject
# 29| -1: [TypeMention] string
# 30| 3: [ConstructorInitializer] call to constructor Person1
# 30| 0: [ParameterAccess] access to parameter FirstName
# 30| 1: [ParameterAccess] access to parameter LastName
# 29| 18: [Property] Subject
# 29| 3: [Getter] get_Subject
# 29| 4: [Setter] set_Subject
#-----| 2: (Parameters)
# 29| 0: [Parameter] value
# 32| [RecordClass] Student1
# 32| 14: [NEOperator] !=
#-----| 2: (Parameters)
# 32| 0: [Parameter] left
# 32| 1: [Parameter] right
# 32| 15: [EQOperator] ==
#-----| 2: (Parameters)
# 32| 0: [Parameter] left
# 32| 1: [Parameter] right
# 32| 16: [Property] EqualityContract
# 32| 3: [Getter] get_EqualityContract
# 32| 17: [InstanceConstructor,PrimaryConstructor] Student1
#-----| 2: (Parameters)
# 32| 0: [Parameter] FirstName
# 32| -1: [TypeMention] string
# 32| 1: [Parameter] LastName
# 32| -1: [TypeMention] string
# 32| 2: [Parameter] Level
# 32| -1: [TypeMention] int
# 33| 3: [ConstructorInitializer] call to constructor Person1
# 33| 0: [ParameterAccess] access to parameter FirstName
# 33| 1: [ParameterAccess] access to parameter LastName
# 32| 18: [Property] Level
# 32| 3: [Getter] get_Level
# 32| 4: [Setter] set_Level
#-----| 2: (Parameters)
# 32| 0: [Parameter] value
# 35| [RecordClass] Pet
# 35| 13: [NEOperator] !=
#-----| 2: (Parameters)
# 35| 0: [Parameter] left
# 35| 1: [Parameter] right
# 35| 14: [EQOperator] ==
#-----| 2: (Parameters)
# 35| 0: [Parameter] left
# 35| 1: [Parameter] right
# 35| 15: [Property] EqualityContract
# 35| 3: [Getter] get_EqualityContract
# 35| 16: [InstanceConstructor,PrimaryConstructor] Pet
#-----| 2: (Parameters)
# 35| 0: [Parameter] Name
# 35| -1: [TypeMention] string
# 35| 17: [Property] Name
# 35| 3: [Getter] get_Name
# 35| 4: [Setter] set_Name
#-----| 2: (Parameters)
# 35| 0: [Parameter] value
# 37| 18: [Method] ShredTheFurniture
# 37| -1: [TypeMention] Void
# 38| 4: [MethodCall] call to method WriteLine
# 38| -1: [TypeAccess] access to type Console
# 38| 0: [TypeMention] Console
# 38| 0: [StringLiteralUtf16] "Shredding furniture"
# 41| [RecordClass] Dog
# 41| 13: [NEOperator] !=
#-----| 2: (Parameters)
# 41| 0: [Parameter] left
# 41| 1: [Parameter] right
# 41| 14: [EQOperator] ==
#-----| 2: (Parameters)
# 41| 0: [Parameter] left
# 41| 1: [Parameter] right
# 41| 15: [InstanceConstructor,PrimaryConstructor] Dog
#-----| 2: (Parameters)
# 41| 0: [Parameter] Name
# 41| -1: [TypeMention] string
# 41| 3: [ConstructorInitializer] call to constructor Pet
# 41| 0: [ParameterAccess] access to parameter Name
# 41| 16: [Property] EqualityContract
# 41| 3: [Getter] get_EqualityContract
# 43| 17: [Method] WagTail
# 43| -1: [TypeMention] Void
# 44| 4: [MethodCall] call to method WriteLine
# 44| -1: [TypeAccess] access to type Console
# 44| 0: [TypeMention] Console
# 44| 0: [StringLiteralUtf16] "It's tail wagging time"
# 46| 18: [Method] ToString
# 46| -1: [TypeMention] string
# 47| 4: [BlockStmt] {...}
# 48| 0: [LocalVariableDeclStmt] ... ...;
# 48| 0: [LocalVariableDeclAndInitExpr] StringBuilder s = ...
# 48| -1: [TypeMention] StringBuilder
# 48| 0: [LocalVariableAccess] access to local variable s
# 48| 1: [ObjectCreation] object creation of type StringBuilder
# 48| 0: [TypeMention] StringBuilder
# 49| 1: [ExprStmt] ...;
# 49| 0: [MethodCall] call to method PrintMembers
# 49| -1: [BaseAccess] base access
# 49| 0: [LocalVariableAccess] access to local variable s
# 50| 2: [ReturnStmt] return ...;
# 50| 0: [InterpolatedStringExpr] $"..."
# 50| 0: [InterpolatedStringInsertExpr] {...}
# 50| 0: [MethodCall] call to method ToString
# 50| -1: [LocalVariableAccess] access to local variable s
# 50| 1: [StringLiteralUtf16] " is a dog"
# 54| [RecordClass] R1
# 54| 13: [NEOperator] !=
#-----| 2: (Parameters)
# 54| 0: [Parameter] left
# 54| 1: [Parameter] right
# 54| 14: [EQOperator] ==
#-----| 2: (Parameters)
# 54| 0: [Parameter] left
# 54| 1: [Parameter] right
# 54| 15: [Property] EqualityContract
# 54| 3: [Getter] get_EqualityContract
# 54| 16: [InstanceConstructor,PrimaryConstructor] R1
#-----| 2: (Parameters)
# 54| 0: [Parameter] A
# 54| -1: [TypeMention] string
# 54| 17: [Property] A
# 54| 3: [Getter] get_A
# 54| 4: [Setter] set_A
#-----| 2: (Parameters)
# 54| 0: [Parameter] value
# 56| [RecordClass] R2
# 56| 14: [NEOperator] !=
#-----| 2: (Parameters)
# 56| 0: [Parameter] left
# 56| 1: [Parameter] right
# 56| 15: [EQOperator] ==
#-----| 2: (Parameters)
# 56| 0: [Parameter] left
# 56| 1: [Parameter] right
# 56| 16: [Property] EqualityContract
# 56| 3: [Getter] get_EqualityContract
# 56| 17: [InstanceConstructor,PrimaryConstructor] R2
#-----| 2: (Parameters)
# 56| 0: [Parameter] A
# 56| -1: [TypeMention] string
# 56| 1: [Parameter] B
# 56| -1: [TypeMention] string
# 56| 3: [ConstructorInitializer] call to constructor R1
# 56| 0: [ParameterAccess] access to parameter A
# 56| 18: [Property] B
# 56| 3: [Getter] get_B
# 56| 4: [Setter] set_B
#-----| 2: (Parameters)
# 56| 0: [Parameter] value
# 58| [Class] Record1
# 60| 6: [Method] M1
# 60| -1: [TypeMention] Void
# 61| 4: [BlockStmt] {...}
# 62| 0: [LocalVariableDeclStmt] ... ...;
# 62| 0: [LocalVariableDeclAndInitExpr] Person person = ...
# 62| -1: [TypeMention] Person
# 62| 0: [LocalVariableAccess] access to local variable person
# 62| 1: [ObjectCreation] object creation of type Person
# 62| -1: [TypeMention] Person
# 62| 0: [StringLiteralUtf16] "Bill"
# 62| 1: [StringLiteralUtf16] "Wagner"
# 63| 1: [LocalVariableDeclStmt] ... ...;
# 63| 0: [LocalVariableDeclAndInitExpr] Student student = ...
# 63| -1: [TypeMention] Student
# 63| 0: [LocalVariableAccess] access to local variable student
# 63| 1: [ObjectCreation] object creation of type Student
# 63| -1: [TypeMention] Student
# 63| 0: [StringLiteralUtf16] "Bill"
# 63| 1: [StringLiteralUtf16] "Wagner"
# 63| 2: [IntLiteral] 11
# 65| 2: [ExprStmt] ...;
# 65| 0: [MethodCall] call to method WriteLine
# 65| -1: [TypeAccess] access to type Console
# 65| 0: [TypeMention] Console
# 65| 0: [OperatorCall] call to operator ==
# 65| 0: [LocalVariableAccess] access to local variable student
# 65| 1: [LocalVariableAccess] access to local variable person
# 68| 7: [Method] M2
# 68| -1: [TypeMention] Void
# 69| 4: [BlockStmt] {...}
# 70| 0: [LocalVariableDeclStmt] ... ...;
# 70| 0: [LocalVariableDeclAndInitExpr] Person1 p1 = ...
# 70| -1: [TypeMention] Person1
# 70| 0: [LocalVariableAccess] access to local variable p1
# 70| 1: [ObjectCreation] object creation of type Teacher1
# 70| -1: [TypeMention] Teacher1
# 70| 0: [StringLiteralUtf16] "Bill"
# 70| 1: [StringLiteralUtf16] "Wagner"
# 70| 2: [StringLiteralUtf16] "Math"
# 72| 1: [ExprStmt] ...;
# 72| 0: [AssignExpr] ... = ...
# 72| 0: [TupleExpr] (..., ...)
# 72| 0: [LocalVariableDeclExpr] String first
# 72| 1: [LocalVariableDeclExpr] String last
# 72| 1: [LocalVariableAccess] access to local variable p1
# 73| 2: [ExprStmt] ...;
# 73| 0: [MethodCall] call to method WriteLine
# 73| -1: [TypeAccess] access to type Console
# 73| 0: [TypeMention] Console
# 73| 0: [LocalVariableAccess] access to local variable first
# 75| 3: [LocalVariableDeclStmt] ... ...;
# 75| 0: [LocalVariableDeclAndInitExpr] Person1 p2 = ...
# 75| -1: [TypeMention] Person1
# 75| 0: [LocalVariableAccess] access to local variable p2
# 75| 1: [WithExpr] ... with { ... }
# 75| 0: [LocalVariableAccess] access to local variable p1
# 75| 1: [ObjectInitializer] { ..., ... }
# 75| 0: [MemberInitializer] ... = ...
# 75| 0: [PropertyCall] access to property FirstName
# 75| 1: [StringLiteralUtf16] "Paul"
# 76| 4: [LocalVariableDeclStmt] ... ...;
# 76| 0: [LocalVariableDeclAndInitExpr] Teacher1 p3 = ...
# 76| -1: [TypeMention] Teacher1
# 76| 0: [LocalVariableAccess] access to local variable p3
# 76| 1: [WithExpr] ... with { ... }
# 76| 0: [CastExpr] (...) ...
# 76| 0: [TypeAccess] access to type Teacher1
# 76| 0: [TypeMention] Teacher1
# 76| 1: [LocalVariableAccess] access to local variable p1
# 76| 1: [ObjectInitializer] { ..., ... }
# 76| 0: [MemberInitializer] ... = ...
# 76| 0: [PropertyCall] access to property FirstName
# 76| 1: [StringLiteralUtf16] "Paul"
# 76| 1: [MemberInitializer] ... = ...
# 76| 0: [PropertyCall] access to property Subject
# 76| 1: [StringLiteralUtf16] "Literature"
# 77| 5: [LocalVariableDeclStmt] ... ...;
# 77| 0: [LocalVariableDeclAndInitExpr] Person1 clone = ...
# 77| -1: [TypeMention] Person1
# 77| 0: [LocalVariableAccess] access to local variable clone
# 77| 1: [WithExpr] ... with { ... }
# 77| 0: [LocalVariableAccess] access to local variable p1
# 77| 1: [ObjectInitializer] { ..., ... }
# 80| 8: [Method] M3
# 80| -1: [TypeMention] Void
# 81| 4: [BlockStmt] {...}
# 82| 0: [LocalVariableDeclStmt] ... ...;
# 82| 0: [LocalVariableDeclAndInitExpr] R2 a = ...
# 82| -1: [TypeMention] R2
# 82| 0: [LocalVariableAccess] access to local variable a
# 82| 1: [ObjectCreation] object creation of type R2
# 82| -1: [TypeMention] R2
# 82| 0: [StringLiteralUtf16] "A"
# 82| 1: [StringLiteralUtf16] "B"
# 83| 1: [LocalVariableDeclStmt] ... ...;
# 83| 0: [LocalVariableDeclAndInitExpr] R1 b = ...
# 83| -1: [TypeMention] R1
# 83| 0: [LocalVariableAccess] access to local variable b
# 83| 1: [LocalVariableAccess] access to local variable a
# 84| 2: [LocalVariableDeclStmt] ... ...;
# 84| 0: [LocalVariableDeclAndInitExpr] R1 c = ...
# 84| -1: [TypeMention] R1
# 84| 0: [LocalVariableAccess] access to local variable c
# 84| 1: [WithExpr] ... with { ... }
# 84| 0: [LocalVariableAccess] access to local variable b
# 84| 1: [ObjectInitializer] { ..., ... }
# 84| 0: [MemberInitializer] ... = ...
# 84| 0: [PropertyCall] access to property A
# 84| 1: [StringLiteralUtf16] "C"
RelationalPattern.cs:
# 3| [Class] RelationalPattern
# 5| 6: [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| 7: [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| 8: [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| 9: [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| 10: [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: [StringLiteralUtf16] "1"
# 19| 1: [SwitchCaseExpr] ... => ...
# 19| 0: [GTPattern] > ...
# 19| 0: [IntLiteral] 1
# 19| 2: [StringLiteralUtf16] ">1"
# 20| 2: [SwitchCaseExpr] ... => ...
# 20| 0: [DiscardPatternExpr] _
# 20| 2: [StringLiteralUtf16] "other"
TargetType.cs:
# 5| [Class] TargetType
# 7| 6: [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<int>
# 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<int>
# 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<int>
# 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<int>
# 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<int>
# 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| 7: [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| 6: [Method] F1`1
# 5| -1: [TypeMention] Void
#-----| 1: (Type parameters)
# 5| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 5| 0: [Parameter] t
# 5| 4: [BlockStmt] {...}
# 6| 7: [Method] F2`1
# 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| 8: [Method] F3`1
# 7| -1: [TypeMention] Void
#-----| 1: (Type parameters)
# 7| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 7| 0: [Parameter] t
# 7| 4: [BlockStmt] {...}
# 8| 9: [Method] F4`1
# 8| -1: [TypeMention] Void
#-----| 1: (Type parameters)
# 8| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 8| 0: [Parameter] t
# 8| 4: [BlockStmt] {...}
# 9| 10: [Method] F5`1
# 9| -1: [TypeMention] Void
#-----| 1: (Type parameters)
# 9| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 9| 0: [Parameter] t
# 9| 4: [BlockStmt] {...}
# 10| 11: [Method] F6`1
# 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| 6: [Method] F1`1
# 15| -1: [TypeMention] Void
#-----| 1: (Type parameters)
# 15| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 15| 0: [Parameter] t
# 15| 4: [BlockStmt] {...}
# 16| 7: [Method] F2`1
# 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| 8: [Method] F3`1
# 17| -1: [TypeMention] Void
#-----| 1: (Type parameters)
# 17| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 17| 0: [Parameter] t
# 17| 4: [BlockStmt] {...}
# 18| 9: [Method] F4`1
# 18| -1: [TypeMention] Void
#-----| 1: (Type parameters)
# 18| 0: [TypeParameter] T
#-----| 2: (Parameters)
# 18| 0: [Parameter] t
# 18| 4: [BlockStmt] {...}
# 19| 10: [Method] F6`1
# 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| 6: [Method] F2`1
# 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| 6: [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
UnaryPattern.cs:
# 3| [Class] UnaryPattern
# 5| 6: [Property] P1
# 5| -1: [TypeMention] int
# 5| 3: [Getter] get_P1
# 5| 4: [Setter] set_P1
#-----| 2: (Parameters)
# 5| 0: [Parameter] value
# 7| 7: [Method] M1
# 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: [NotPatternExpr] not ...
# 8| 0: [CharLiteral,ConstantPatternExpr] a
# 9| 8: [Method] M2
# 9| -1: [TypeMention] bool
#-----| 2: (Parameters)
# 9| 0: [Parameter] c
# 9| -1: [TypeMention] object
# 10| 4: [IsExpr] ... is ...
# 10| 0: [ParameterAccess] access to parameter c
# 10| 1: [NotPatternExpr] not ...
# 10| 0: [ConstantPatternExpr,NullLiteral] null
# 11| 9: [Method] M3
# 11| -1: [TypeMention] bool
#-----| 2: (Parameters)
# 11| 0: [Parameter] c
# 11| -1: [TypeMention] object
# 12| 4: [IsExpr] ... is ...
# 12| 0: [ParameterAccess] access to parameter c
# 12| 1: [NotPatternExpr] not ...
# 12| 0: [RecursivePatternExpr] { ... }
# 12| 0: [VariablePatternExpr] UnaryPattern u
# 12| 1: [TypeAccessPatternExpr] access to type UnaryPattern
# 12| 0: [TypeMention] UnaryPattern
# 12| 3: [PropertyPatternExpr] { ... }
# 12| 0: [ConstantPatternExpr,IntLiteral,LabeledPatternExpr] 1
# 14| 10: [Method] M4
# 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: [NotPatternExpr] not ...
# 18| 0: [ConstantPatternExpr,IntLiteral] 1
# 18| 2: [StringLiteralUtf16] "not 1"
# 19| 1: [SwitchCaseExpr] ... => ...
# 19| 0: [DiscardPatternExpr] _
# 19| 2: [StringLiteralUtf16] "other"