mirror of
https://github.com/github/codeql.git
synced 2025-12-22 19:56:32 +01:00
472 lines
22 KiB
Plaintext
472 lines
22 KiB
Plaintext
app/src/main/kotlin/testProject/App.kt:
|
|
# 0| [CompilationUnit] App
|
|
# 7| 1: [Class] Project
|
|
# 0| 1: [Constructor] Project
|
|
#-----| 4: (Parameters)
|
|
# 0| 0: [Parameter] seen1
|
|
# 0| 0: [TypeAccess] int
|
|
# 0| 1: [Parameter] name
|
|
# 0| 0: [TypeAccess] String
|
|
# 0| 2: [Parameter] language
|
|
# 0| 0: [TypeAccess] int
|
|
# 0| 3: [Parameter] serializationConstructorMarker
|
|
# 0| 0: [TypeAccess] SerializationConstructorMarker
|
|
# 7| 5: [BlockStmt] { ... }
|
|
# 7| 0: [ExprStmt] <Expr>;
|
|
# 7| 0: [WhenExpr] when ...
|
|
# 7| 0: [WhenBranch] ... -> ...
|
|
# 7| 0: [ValueNEExpr] ... (value not-equals) ...
|
|
# 7| 0: [IntegerLiteral] 3
|
|
# 7| 1: [AndBitwiseExpr] ... & ...
|
|
# 7| 0: [IntegerLiteral] 3
|
|
# 7| 1: [VarAccess] seen1
|
|
# 7| 1: [ExprStmt] <Expr>;
|
|
# 7| 0: [MethodAccess] throwMissingFieldException(...)
|
|
# 7| -1: [TypeAccess] PluginExceptionsKt
|
|
# 7| 0: [VarAccess] seen1
|
|
# 7| 1: [IntegerLiteral] 3
|
|
# 7| 2: [MethodAccess] getDescriptor(...)
|
|
# 7| -1: [VarAccess] INSTANCE
|
|
# 7| 1: [SuperConstructorInvocationStmt] super(...)
|
|
# 7| 2: [ExprStmt] <Expr>;
|
|
# 7| 0: [AssignExpr] ...=...
|
|
# 7| 0: [VarAccess] Project.this.name
|
|
# 7| -1: [ThisAccess] Project.this
|
|
# 7| 0: [TypeAccess] Project
|
|
# 7| 1: [VarAccess] name
|
|
# 7| 3: [ExprStmt] <Expr>;
|
|
# 7| 0: [AssignExpr] ...=...
|
|
# 7| 0: [VarAccess] Project.this.language
|
|
# 7| -1: [ThisAccess] Project.this
|
|
# 7| 0: [TypeAccess] Project
|
|
# 7| 1: [VarAccess] language
|
|
# 0| 2: [Method] component1
|
|
# 0| 3: [TypeAccess] String
|
|
# 0| 5: [BlockStmt] { ... }
|
|
# 0| 0: [ReturnStmt] return ...
|
|
# 0| 0: [VarAccess] this.name
|
|
# 0| -1: [ThisAccess] this
|
|
# 0| 3: [Method] component2
|
|
# 0| 3: [TypeAccess] int
|
|
# 0| 5: [BlockStmt] { ... }
|
|
# 0| 0: [ReturnStmt] return ...
|
|
# 0| 0: [VarAccess] this.language
|
|
# 0| -1: [ThisAccess] this
|
|
# 0| 4: [Method] copy
|
|
# 0| 3: [TypeAccess] Project
|
|
#-----| 4: (Parameters)
|
|
# 8| 0: [Parameter] name
|
|
# 8| 0: [TypeAccess] String
|
|
# 8| 1: [Parameter] language
|
|
# 8| 0: [TypeAccess] int
|
|
# 0| 5: [BlockStmt] { ... }
|
|
# 0| 0: [ReturnStmt] return ...
|
|
# 0| 0: [ClassInstanceExpr] new Project(...)
|
|
# 0| -3: [TypeAccess] Project
|
|
# 0| 0: [VarAccess] name
|
|
# 0| 1: [VarAccess] language
|
|
# 0| 5: [Method] copy$default
|
|
# 0| 3: [TypeAccess] Project
|
|
#-----| 4: (Parameters)
|
|
# 0| 0: [Parameter] p0
|
|
# 0| 0: [TypeAccess] Project
|
|
# 0| 1: [Parameter] p1
|
|
# 0| 0: [TypeAccess] String
|
|
# 0| 2: [Parameter] p2
|
|
# 0| 0: [TypeAccess] int
|
|
# 0| 3: [Parameter] p3
|
|
# 0| 0: [TypeAccess] int
|
|
# 0| 4: [Parameter] p4
|
|
# 0| 0: [TypeAccess] Object
|
|
# 0| 5: [BlockStmt] { ... }
|
|
# 0| 0: [IfStmt] if (...)
|
|
# 0| 0: [EQExpr] ... == ...
|
|
# 0| 0: [AndBitwiseExpr] ... & ...
|
|
# 0| 0: [IntegerLiteral] 1
|
|
# 0| 1: [VarAccess] p3
|
|
# 0| 1: [IntegerLiteral] 0
|
|
# 0| 1: [ExprStmt] <Expr>;
|
|
# 0| 0: [AssignExpr] ...=...
|
|
# 0| 0: [VarAccess] p1
|
|
# 0| 1: [VarAccess] p0.name
|
|
# 0| -1: [VarAccess] p0
|
|
# 0| 1: [IfStmt] if (...)
|
|
# 0| 0: [EQExpr] ... == ...
|
|
# 0| 0: [AndBitwiseExpr] ... & ...
|
|
# 0| 0: [IntegerLiteral] 2
|
|
# 0| 1: [VarAccess] p3
|
|
# 0| 1: [IntegerLiteral] 0
|
|
# 0| 1: [ExprStmt] <Expr>;
|
|
# 0| 0: [AssignExpr] ...=...
|
|
# 0| 0: [VarAccess] p2
|
|
# 0| 1: [VarAccess] p0.language
|
|
# 0| -1: [VarAccess] p0
|
|
# 0| 2: [ReturnStmt] return ...
|
|
# 0| 0: [MethodAccess] copy(...)
|
|
# 0| -1: [VarAccess] p0
|
|
# 0| 0: [VarAccess] p1
|
|
# 0| 1: [VarAccess] p2
|
|
# 0| 6: [Method] equals
|
|
# 0| 3: [TypeAccess] boolean
|
|
#-----| 4: (Parameters)
|
|
# 0| 0: [Parameter] other
|
|
# 0| 0: [TypeAccess] Object
|
|
# 0| 5: [BlockStmt] { ... }
|
|
# 0| 0: [ExprStmt] <Expr>;
|
|
# 0| 0: [WhenExpr] when ...
|
|
# 0| 0: [WhenBranch] ... -> ...
|
|
# 0| 0: [EQExpr] ... == ...
|
|
# 0| 0: [ThisAccess] this
|
|
# 0| 1: [VarAccess] other
|
|
# 0| 1: [ReturnStmt] return ...
|
|
# 0| 0: [BooleanLiteral] true
|
|
# 0| 1: [ExprStmt] <Expr>;
|
|
# 0| 0: [WhenExpr] when ...
|
|
# 0| 0: [WhenBranch] ... -> ...
|
|
# 0| 0: [NotInstanceOfExpr] ... !is ...
|
|
# 0| 0: [VarAccess] other
|
|
# 0| 1: [TypeAccess] Project
|
|
# 0| 1: [ReturnStmt] return ...
|
|
# 0| 0: [BooleanLiteral] false
|
|
# 0| 2: [LocalVariableDeclStmt] var ...;
|
|
# 0| 1: [LocalVariableDeclExpr] tmp0_other_with_cast
|
|
# 0| 0: [CastExpr] (...)...
|
|
# 0| 0: [TypeAccess] Project
|
|
# 0| 1: [VarAccess] other
|
|
# 0| 3: [ExprStmt] <Expr>;
|
|
# 0| 0: [WhenExpr] when ...
|
|
# 0| 0: [WhenBranch] ... -> ...
|
|
# 0| 0: [ValueNEExpr] ... (value not-equals) ...
|
|
# 0| 0: [VarAccess] this.name
|
|
# 0| -1: [ThisAccess] this
|
|
# 0| 1: [VarAccess] tmp0_other_with_cast.name
|
|
# 0| -1: [VarAccess] tmp0_other_with_cast
|
|
# 0| 1: [ReturnStmt] return ...
|
|
# 0| 0: [BooleanLiteral] false
|
|
# 0| 4: [ExprStmt] <Expr>;
|
|
# 0| 0: [WhenExpr] when ...
|
|
# 0| 0: [WhenBranch] ... -> ...
|
|
# 0| 0: [ValueNEExpr] ... (value not-equals) ...
|
|
# 0| 0: [VarAccess] this.language
|
|
# 0| -1: [ThisAccess] this
|
|
# 0| 1: [VarAccess] tmp0_other_with_cast.language
|
|
# 0| -1: [VarAccess] tmp0_other_with_cast
|
|
# 0| 1: [ReturnStmt] return ...
|
|
# 0| 0: [BooleanLiteral] false
|
|
# 0| 5: [ReturnStmt] return ...
|
|
# 0| 0: [BooleanLiteral] true
|
|
# 0| 7: [Method] hashCode
|
|
# 0| 3: [TypeAccess] int
|
|
# 0| 5: [BlockStmt] { ... }
|
|
# 0| 0: [LocalVariableDeclStmt] var ...;
|
|
# 0| 1: [LocalVariableDeclExpr] result
|
|
# 0| 0: [MethodAccess] hashCode(...)
|
|
# 0| -1: [VarAccess] this.name
|
|
# 0| -1: [ThisAccess] this
|
|
# 0| 1: [ExprStmt] <Expr>;
|
|
# 0| 0: [AssignExpr] ...=...
|
|
# 0| 0: [VarAccess] result
|
|
# 0| 1: [AddExpr] ... + ...
|
|
# 0| 0: [MulExpr] ... * ...
|
|
# 0| 0: [VarAccess] result
|
|
# 0| 1: [IntegerLiteral] 31
|
|
# 0| 1: [MethodAccess] hashCode(...)
|
|
# 0| -1: [VarAccess] this.language
|
|
# 0| -1: [ThisAccess] this
|
|
# 0| 2: [ReturnStmt] return ...
|
|
# 0| 0: [VarAccess] result
|
|
# 0| 8: [Method] toString
|
|
# 0| 3: [TypeAccess] String
|
|
# 0| 5: [BlockStmt] { ... }
|
|
# 0| 0: [ReturnStmt] return ...
|
|
# 0| 0: [StringTemplateExpr] "..."
|
|
# 0| 0: [StringLiteral] Project(
|
|
# 0| 1: [StringLiteral] name=
|
|
# 0| 2: [VarAccess] this.name
|
|
# 0| -1: [ThisAccess] this
|
|
# 0| 3: [StringLiteral] ,
|
|
# 0| 4: [StringLiteral] language=
|
|
# 0| 5: [VarAccess] this.language
|
|
# 0| -1: [ThisAccess] this
|
|
# 0| 6: [StringLiteral] )
|
|
# 0| 9: [Method] write$Self
|
|
# 0| 3: [TypeAccess] Unit
|
|
#-----| 4: (Parameters)
|
|
# 0| 0: [Parameter] self
|
|
# 0| 0: [TypeAccess] Project
|
|
# 0| 1: [Parameter] output
|
|
# 0| 0: [TypeAccess] CompositeEncoder
|
|
# 0| 2: [Parameter] serialDesc
|
|
# 0| 0: [TypeAccess] SerialDescriptor
|
|
# 7| 5: [BlockStmt] { ... }
|
|
# 7| 0: [ExprStmt] <Expr>;
|
|
# 7| 0: [MethodAccess] encodeStringElement(...)
|
|
# 7| -1: [VarAccess] output
|
|
# 7| 0: [VarAccess] serialDesc
|
|
# 7| 1: [IntegerLiteral] 0
|
|
# 7| 2: [MethodAccess] getName(...)
|
|
# 7| -1: [VarAccess] self
|
|
# 7| 1: [ExprStmt] <Expr>;
|
|
# 7| 0: [MethodAccess] encodeIntElement(...)
|
|
# 7| -1: [VarAccess] output
|
|
# 7| 0: [VarAccess] serialDesc
|
|
# 7| 1: [IntegerLiteral] 1
|
|
# 7| 2: [MethodAccess] getLanguage(...)
|
|
# 7| -1: [VarAccess] self
|
|
# 7| 10: [Class] $serializer
|
|
# 0| 1: [FieldDeclaration] SerialDescriptor descriptor;
|
|
# 0| -1: [TypeAccess] SerialDescriptor
|
|
# 0| 2: [Method] childSerializers
|
|
# 0| 3: [TypeAccess] KSerializer<?>[]
|
|
# 0| 0: [TypeAccess] KSerializer<?>
|
|
# 0| 0: [WildcardTypeAccess] ? ...
|
|
# 7| 5: [BlockStmt] { ... }
|
|
# 7| 0: [ReturnStmt] return ...
|
|
# 7| 0: [ArrayCreationExpr] new KSerializer<?>[]
|
|
# 7| -2: [ArrayInit] {...}
|
|
# 7| -1: [TypeAccess] KSerializer<?>
|
|
# 7| 0: [IntegerLiteral] 2
|
|
# 0| 3: [Method] deserialize
|
|
# 0| 3: [TypeAccess] Project
|
|
#-----| 4: (Parameters)
|
|
# 0| 0: [Parameter] decoder
|
|
# 0| 0: [TypeAccess] Decoder
|
|
# 7| 5: [BlockStmt] { ... }
|
|
# 7| 0: [LocalVariableDeclStmt] var ...;
|
|
# 7| 1: [LocalVariableDeclExpr] tmp0_desc
|
|
# 7| 0: [MethodAccess] getDescriptor(...)
|
|
# 7| -1: [ThisAccess] this
|
|
# 7| 1: [LocalVariableDeclStmt] var ...;
|
|
# 7| 1: [LocalVariableDeclExpr] tmp1_flag
|
|
# 7| 0: [BooleanLiteral] true
|
|
# 7| 2: [LocalVariableDeclStmt] var ...;
|
|
# 7| 1: [LocalVariableDeclExpr] tmp2_index
|
|
# 7| 0: [IntegerLiteral] 0
|
|
# 7| 3: [LocalVariableDeclStmt] var ...;
|
|
# 7| 1: [LocalVariableDeclExpr] tmp3_bitMask0
|
|
# 7| 0: [IntegerLiteral] 0
|
|
# 7| 4: [LocalVariableDeclStmt] var ...;
|
|
# 7| 1: [LocalVariableDeclExpr] tmp4_local0
|
|
# 7| 0: [NullLiteral] null
|
|
# 7| 5: [LocalVariableDeclStmt] var ...;
|
|
# 7| 1: [LocalVariableDeclExpr] tmp5_local1
|
|
# 7| 0: [IntegerLiteral] 0
|
|
# 7| 6: [LocalVariableDeclStmt] var ...;
|
|
# 7| 1: [LocalVariableDeclExpr] tmp6_input
|
|
# 7| 0: [MethodAccess] beginStructure(...)
|
|
# 7| -1: [VarAccess] decoder
|
|
# 7| 0: [VarAccess] tmp0_desc
|
|
# 7| 7: [ExprStmt] <Expr>;
|
|
# 7| 0: [WhenExpr] when ...
|
|
# 7| 0: [WhenBranch] ... -> ...
|
|
# 7| 0: [MethodAccess] decodeSequentially(...)
|
|
# 7| -1: [VarAccess] tmp6_input
|
|
# 7| 1: [BlockStmt] { ... }
|
|
# 7| 0: [BlockStmt] { ... }
|
|
# 7| 0: [ExprStmt] <Expr>;
|
|
# 7| 0: [AssignExpr] ...=...
|
|
# 7| 0: [VarAccess] tmp4_local0
|
|
# 7| 1: [MethodAccess] decodeStringElement(...)
|
|
# 7| -1: [VarAccess] tmp6_input
|
|
# 7| 0: [VarAccess] tmp0_desc
|
|
# 7| 1: [IntegerLiteral] 0
|
|
# 7| 1: [ExprStmt] <Expr>;
|
|
# 7| 0: [AssignExpr] ...=...
|
|
# 7| 0: [VarAccess] tmp3_bitMask0
|
|
# 7| 1: [OrBitwiseExpr] ... | ...
|
|
# 7| 0: [VarAccess] tmp3_bitMask0
|
|
# 7| 1: [IntegerLiteral] 1
|
|
# 7| 1: [BlockStmt] { ... }
|
|
# 7| 0: [ExprStmt] <Expr>;
|
|
# 7| 0: [AssignExpr] ...=...
|
|
# 7| 0: [VarAccess] tmp5_local1
|
|
# 7| 1: [MethodAccess] decodeIntElement(...)
|
|
# 7| -1: [VarAccess] tmp6_input
|
|
# 7| 0: [VarAccess] tmp0_desc
|
|
# 7| 1: [IntegerLiteral] 1
|
|
# 7| 1: [ExprStmt] <Expr>;
|
|
# 7| 0: [AssignExpr] ...=...
|
|
# 7| 0: [VarAccess] tmp3_bitMask0
|
|
# 7| 1: [OrBitwiseExpr] ... | ...
|
|
# 7| 0: [VarAccess] tmp3_bitMask0
|
|
# 7| 1: [IntegerLiteral] 2
|
|
# 7| 1: [WhenBranch] ... -> ...
|
|
# 7| 0: [BooleanLiteral] true
|
|
# 7| 1: [WhileStmt] while (...)
|
|
# 7| 0: [VarAccess] tmp1_flag
|
|
# 7| 1: [BlockStmt] { ... }
|
|
# 7| 0: [ExprStmt] <Expr>;
|
|
# 7| 0: [AssignExpr] ...=...
|
|
# 7| 0: [VarAccess] tmp2_index
|
|
# 7| 1: [MethodAccess] decodeElementIndex(...)
|
|
# 7| -1: [VarAccess] tmp6_input
|
|
# 7| 0: [VarAccess] tmp0_desc
|
|
# 7| 1: [ExprStmt] <Expr>;
|
|
# 7| 0: [WhenExpr] when ...
|
|
# 7| 0: [WhenBranch] ... -> ...
|
|
# 7| 0: [ValueEQExpr] ... (value equals) ...
|
|
# 7| 0: [VarAccess] tmp2_index
|
|
# 7| 1: [IntegerLiteral] -1
|
|
# 7| 1: [ExprStmt] <Expr>;
|
|
# 7| 0: [AssignExpr] ...=...
|
|
# 7| 0: [VarAccess] tmp1_flag
|
|
# 7| 1: [BooleanLiteral] false
|
|
# 7| 1: [WhenBranch] ... -> ...
|
|
# 7| 0: [ValueEQExpr] ... (value equals) ...
|
|
# 7| 0: [VarAccess] tmp2_index
|
|
# 7| 1: [IntegerLiteral] 0
|
|
# 7| 1: [BlockStmt] { ... }
|
|
# 7| 0: [ExprStmt] <Expr>;
|
|
# 7| 0: [AssignExpr] ...=...
|
|
# 7| 0: [VarAccess] tmp4_local0
|
|
# 7| 1: [MethodAccess] decodeStringElement(...)
|
|
# 7| -1: [VarAccess] tmp6_input
|
|
# 7| 0: [VarAccess] tmp0_desc
|
|
# 7| 1: [IntegerLiteral] 0
|
|
# 7| 1: [ExprStmt] <Expr>;
|
|
# 7| 0: [AssignExpr] ...=...
|
|
# 7| 0: [VarAccess] tmp3_bitMask0
|
|
# 7| 1: [OrBitwiseExpr] ... | ...
|
|
# 7| 0: [VarAccess] tmp3_bitMask0
|
|
# 7| 1: [IntegerLiteral] 1
|
|
# 7| 2: [WhenBranch] ... -> ...
|
|
# 7| 0: [ValueEQExpr] ... (value equals) ...
|
|
# 7| 0: [VarAccess] tmp2_index
|
|
# 7| 1: [IntegerLiteral] 1
|
|
# 7| 1: [BlockStmt] { ... }
|
|
# 7| 0: [ExprStmt] <Expr>;
|
|
# 7| 0: [AssignExpr] ...=...
|
|
# 7| 0: [VarAccess] tmp5_local1
|
|
# 7| 1: [MethodAccess] decodeIntElement(...)
|
|
# 7| -1: [VarAccess] tmp6_input
|
|
# 7| 0: [VarAccess] tmp0_desc
|
|
# 7| 1: [IntegerLiteral] 1
|
|
# 7| 1: [ExprStmt] <Expr>;
|
|
# 7| 0: [AssignExpr] ...=...
|
|
# 7| 0: [VarAccess] tmp3_bitMask0
|
|
# 7| 1: [OrBitwiseExpr] ... | ...
|
|
# 7| 0: [VarAccess] tmp3_bitMask0
|
|
# 7| 1: [IntegerLiteral] 2
|
|
# 7| 3: [WhenBranch] ... -> ...
|
|
# 7| 0: [BooleanLiteral] true
|
|
# 7| 1: [ThrowStmt] throw ...
|
|
# 7| 0: [ClassInstanceExpr] new UnknownFieldException(...)
|
|
# 7| -3: [TypeAccess] UnknownFieldException
|
|
# 7| 0: [VarAccess] tmp2_index
|
|
# 7| 8: [ExprStmt] <Expr>;
|
|
# 7| 0: [MethodAccess] endStructure(...)
|
|
# 7| -1: [VarAccess] tmp6_input
|
|
# 7| 0: [VarAccess] tmp0_desc
|
|
# 7| 9: [ReturnStmt] return ...
|
|
# 7| 0: [ClassInstanceExpr] new Project(...)
|
|
# 7| -3: [TypeAccess] Project
|
|
# 7| 0: [VarAccess] tmp3_bitMask0
|
|
# 7| 1: [VarAccess] tmp4_local0
|
|
# 7| 2: [VarAccess] tmp5_local1
|
|
# 7| 3: [NullLiteral] null
|
|
# 0| 4: [Method] getDescriptor
|
|
# 0| 3: [TypeAccess] SerialDescriptor
|
|
# 0| 5: [BlockStmt] { ... }
|
|
# 0| 0: [ReturnStmt] return ...
|
|
# 0| 0: [VarAccess] this.descriptor
|
|
# 0| -1: [ThisAccess] this
|
|
# 0| 5: [Method] serialize
|
|
# 0| 3: [TypeAccess] Unit
|
|
#-----| 4: (Parameters)
|
|
# 0| 0: [Parameter] encoder
|
|
# 0| 0: [TypeAccess] Encoder
|
|
# 0| 1: [Parameter] value
|
|
# 0| 0: [TypeAccess] Project
|
|
# 7| 5: [BlockStmt] { ... }
|
|
# 7| 0: [LocalVariableDeclStmt] var ...;
|
|
# 7| 1: [LocalVariableDeclExpr] tmp0_desc
|
|
# 7| 0: [MethodAccess] getDescriptor(...)
|
|
# 7| -1: [ThisAccess] this
|
|
# 7| 1: [LocalVariableDeclStmt] var ...;
|
|
# 7| 1: [LocalVariableDeclExpr] tmp1_output
|
|
# 7| 0: [MethodAccess] beginStructure(...)
|
|
# 7| -1: [VarAccess] encoder
|
|
# 7| 0: [VarAccess] tmp0_desc
|
|
# 7| 2: [ExprStmt] <Expr>;
|
|
# 7| 0: [MethodAccess] write$Self(...)
|
|
# 7| -1: [TypeAccess] Project
|
|
# 7| 0: [VarAccess] value
|
|
# 7| 1: [VarAccess] tmp1_output
|
|
# 7| 2: [VarAccess] tmp0_desc
|
|
# 7| 3: [ExprStmt] <Expr>;
|
|
# 7| 0: [MethodAccess] endStructure(...)
|
|
# 7| -1: [VarAccess] tmp1_output
|
|
# 7| 0: [VarAccess] tmp0_desc
|
|
# 7| 6: [Constructor] $serializer
|
|
# 7| 5: [BlockStmt] { ... }
|
|
# 7| 0: [SuperConstructorInvocationStmt] super(...)
|
|
# 7| 1: [BlockStmt] { ... }
|
|
# 7| 0: [LocalVariableDeclStmt] var ...;
|
|
# 7| 1: [LocalVariableDeclExpr] tmp0_serialDesc
|
|
# 7| 0: [ClassInstanceExpr] new PluginGeneratedSerialDescriptor(...)
|
|
# 7| -3: [TypeAccess] PluginGeneratedSerialDescriptor
|
|
# 7| 0: [StringLiteral] testProject.Project
|
|
# 7| 1: [ThisAccess] $serializer.this
|
|
# 7| 0: [TypeAccess] $serializer
|
|
# 7| 2: [IntegerLiteral] 2
|
|
# 7| 1: [ExprStmt] <Expr>;
|
|
# 7| 0: [MethodAccess] addElement(...)
|
|
# 7| -1: [VarAccess] tmp0_serialDesc
|
|
# 7| 0: [StringLiteral] name
|
|
# 7| 1: [BooleanLiteral] false
|
|
# 7| 2: [ExprStmt] <Expr>;
|
|
# 7| 0: [MethodAccess] addElement(...)
|
|
# 7| -1: [VarAccess] tmp0_serialDesc
|
|
# 7| 0: [StringLiteral] language
|
|
# 7| 1: [BooleanLiteral] false
|
|
# 7| 3: [ExprStmt] <Expr>;
|
|
# 7| 0: [AssignExpr] ...=...
|
|
# 7| 0: [VarAccess] $serializer.this.descriptor
|
|
# 7| -1: [ThisAccess] $serializer.this
|
|
# 7| 0: [TypeAccess] $serializer
|
|
# 7| 1: [VarAccess] tmp0_serialDesc
|
|
# 7| 11: [Class] Companion
|
|
# 0| 1: [Method] serializer
|
|
# 0| 3: [TypeAccess] KSerializer<Project>
|
|
# 0| 0: [TypeAccess] Project
|
|
# 7| 5: [BlockStmt] { ... }
|
|
# 7| 0: [ReturnStmt] return ...
|
|
# 7| 0: [VarAccess] INSTANCE
|
|
# 7| 2: [Constructor] Companion
|
|
# 7| 5: [BlockStmt] { ... }
|
|
# 7| 0: [SuperConstructorInvocationStmt] super(...)
|
|
# 7| 1: [BlockStmt] { ... }
|
|
# 8| 12: [Constructor] Project
|
|
#-----| 4: (Parameters)
|
|
# 8| 0: [Parameter] name
|
|
# 8| 0: [TypeAccess] String
|
|
# 8| 1: [Parameter] language
|
|
# 8| 0: [TypeAccess] int
|
|
# 7| 5: [BlockStmt] { ... }
|
|
# 7| 0: [SuperConstructorInvocationStmt] super(...)
|
|
# 8| 1: [BlockStmt] { ... }
|
|
# 8| 0: [ExprStmt] <Expr>;
|
|
# 8| 0: [KtInitializerAssignExpr] ...=...
|
|
# 8| 0: [VarAccess] name
|
|
# 8| 1: [ExprStmt] <Expr>;
|
|
# 8| 0: [KtInitializerAssignExpr] ...=...
|
|
# 8| 0: [VarAccess] language
|
|
# 8| 13: [FieldDeclaration] String name;
|
|
# 8| -1: [TypeAccess] String
|
|
# 8| 0: [VarAccess] name
|
|
# 8| 14: [Method] getName
|
|
# 8| 3: [TypeAccess] String
|
|
# 8| 5: [BlockStmt] { ... }
|
|
# 8| 0: [ReturnStmt] return ...
|
|
# 8| 0: [VarAccess] this.name
|
|
# 8| -1: [ThisAccess] this
|
|
# 8| 15: [Method] getLanguage
|
|
# 8| 3: [TypeAccess] int
|
|
# 8| 5: [BlockStmt] { ... }
|
|
# 8| 0: [ReturnStmt] return ...
|
|
# 8| 0: [VarAccess] this.language
|
|
# 8| -1: [ThisAccess] this
|
|
# 8| 16: [FieldDeclaration] int language;
|
|
# 8| -1: [TypeAccess] int
|
|
# 8| 0: [VarAccess] language
|