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.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)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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]
|
||||||
|
|||||||
Reference in New Issue
Block a user