JVM IR: Don't produce line numbers in synthetic Enum members
This commit is contained in:
committed by
Alexander Udalov
parent
5be00cfa04
commit
99a4779c6b
+5
-4
@@ -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)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user