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.expressions.IrSyntheticBodyKind
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.findFirstFunction
@@ -39,12 +40,12 @@ class EnumClassMembersGenerator(declarationGenerator: DeclarationGenerator) : De
irClass.addMember(
context.symbolTable.declareSimpleFunctionWithOverrides(
irClass.startOffset, irClass.endOffset,
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER,
valuesFunction
).also { irFunction ->
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(
context.symbolTable.declareSimpleFunctionWithOverrides(
irClass.startOffset, irClass.endOffset,
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER,
valueOfFunction
).also { irFunction ->
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>
@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 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
@17:0..18:11 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
@17:0..18:11 SYNTHETIC_BODY kind=ENUM_VALUEOF
@-1:-1..-1 FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<<root>.Test5>
@-1:-1..-1 SYNTHETIC_BODY kind=ENUM_VALUES
@-1:-1..-1 FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:<root>.Test5
@-1:-1..-1 VALUE_PARAMETER name:value index:0 type:kotlin.String
@-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 VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test6
@22:0..11 CONSTRUCTOR visibility:public <> () returnType:<root>.Test6 [primary]