JVM IR: Don't produce line numbers in synthetic Enum members

This commit is contained in:
Steven Schäfer
2021-02-08 16:52:08 +01:00
committed by Alexander Udalov
parent 5be00cfa04
commit 99a4779c6b
2 changed files with 10 additions and 9 deletions
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
import org.jetbrains.kotlin.ir.declarations.addMember import org.jetbrains.kotlin.ir.declarations.addMember
import org.jetbrains.kotlin.ir.expressions.IrSyntheticBodyKind import org.jetbrains.kotlin.ir.expressions.IrSyntheticBodyKind
import org.jetbrains.kotlin.ir.expressions.impl.IrSyntheticBodyImpl import org.jetbrains.kotlin.ir.expressions.impl.IrSyntheticBodyImpl
import org.jetbrains.kotlin.ir.util.SYNTHETIC_OFFSET
import org.jetbrains.kotlin.ir.util.declareSimpleFunctionWithOverrides import org.jetbrains.kotlin.ir.util.declareSimpleFunctionWithOverrides
import org.jetbrains.kotlin.ir.util.findFirstFunction import org.jetbrains.kotlin.ir.util.findFirstFunction
@@ -39,12 +40,12 @@ class EnumClassMembersGenerator(declarationGenerator: DeclarationGenerator) : De
irClass.addMember( irClass.addMember(
context.symbolTable.declareSimpleFunctionWithOverrides( context.symbolTable.declareSimpleFunctionWithOverrides(
irClass.startOffset, irClass.endOffset, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER, IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER,
valuesFunction valuesFunction
).also { irFunction -> ).also { irFunction ->
FunctionGenerator(declarationGenerator).generateFunctionParameterDeclarationsAndReturnType(irFunction, null, null) FunctionGenerator(declarationGenerator).generateFunctionParameterDeclarationsAndReturnType(irFunction, null, null)
irFunction.body = IrSyntheticBodyImpl(irClass.startOffset, irClass.endOffset, IrSyntheticBodyKind.ENUM_VALUES) irFunction.body = IrSyntheticBodyImpl(SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, IrSyntheticBodyKind.ENUM_VALUES)
} }
) )
} }
@@ -58,12 +59,12 @@ class EnumClassMembersGenerator(declarationGenerator: DeclarationGenerator) : De
irClass.addMember( irClass.addMember(
context.symbolTable.declareSimpleFunctionWithOverrides( context.symbolTable.declareSimpleFunctionWithOverrides(
irClass.startOffset, irClass.endOffset, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER, IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER,
valueOfFunction valueOfFunction
).also { irFunction -> ).also { irFunction ->
FunctionGenerator(declarationGenerator).generateFunctionParameterDeclarationsAndReturnType(irFunction, null, null) FunctionGenerator(declarationGenerator).generateFunctionParameterDeclarationsAndReturnType(irFunction, null, null)
irFunction.body = IrSyntheticBodyImpl(irClass.startOffset, irClass.endOffset, IrSyntheticBodyKind.ENUM_VALUEOF) irFunction.body = IrSyntheticBodyImpl(SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, IrSyntheticBodyKind.ENUM_VALUEOF)
} }
) )
} }
+5 -5
View File
@@ -79,11 +79,11 @@
@17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5> @17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5>
@18:0..11 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Enum<<root>.Test5>) returnType:kotlin.String [fake_override] @18:0..11 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Enum<<root>.Test5>) returnType:kotlin.String [fake_override]
@17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5> @17:0..18:11 VALUE_PARAMETER name:<this> type:kotlin.Enum<<root>.Test5>
@17:0..18:11 FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<<root>.Test5> @-1:-1..-1 FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<<root>.Test5>
@17:0..18:11 SYNTHETIC_BODY kind=ENUM_VALUES @-1:-1..-1 SYNTHETIC_BODY kind=ENUM_VALUES
@17:0..18:11 FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:<root>.Test5 @-1:-1..-1 FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:<root>.Test5
@17:0..18:11 VALUE_PARAMETER name:value index:0 type:kotlin.String @-1:-1..-1 VALUE_PARAMETER name:value index:0 type:kotlin.String
@17:0..18:11 SYNTHETIC_BODY kind=ENUM_VALUEOF @-1:-1..-1 SYNTHETIC_BODY kind=ENUM_VALUEOF
@21:0..22:11 CLASS ANNOTATION_CLASS name:Test6 modality:FINAL visibility:public superTypes:[kotlin.Annotation] @21:0..22:11 CLASS ANNOTATION_CLASS name:Test6 modality:FINAL visibility:public superTypes:[kotlin.Annotation]
@21:0..22:11 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test6 @21:0..22:11 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test6
@22:0..11 CONSTRUCTOR visibility:public <> () returnType:<root>.Test6 [primary] @22:0..11 CONSTRUCTOR visibility:public <> () returnType:<root>.Test6 [primary]