Don't do full type parameters erasure in PromisedValue::materializeAt
The only case when erasure matters in a context of materialization of `PromisedValue` is when the type is a type parameter which upper bound is an inline class. Since `PromisedValue::materializeAt` is a hot spot and `eraseTypeParameters` is an expensive operation, we should not do type erasure in other cases.
This commit is contained in:
committed by
Space Team
parent
5456ef3ad8
commit
8f2825506a
+5
@@ -19618,6 +19618,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/noReturnTypeManglingJvmNameGeneric.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal());
|
||||
}
|
||||
|
||||
@TestMetadata("nonImmediateInlineClassUpperBound.kt")
|
||||
public void testNonImmediateInlineClassUpperBound() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/nonImmediateInlineClassUpperBound.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("nullableEqeqNonNull.kt")
|
||||
public void testNullableEqeqNonNull() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/nullableEqeqNonNull.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithReal());
|
||||
|
||||
Reference in New Issue
Block a user