diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java index 6796f69c1c3..79be4c575d5 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java @@ -179,7 +179,7 @@ public class AsmUtil { } public static boolean isStaticKind(OwnerKind kind) { - return kind == OwnerKind.PACKAGE || kind == OwnerKind.TRAIT_IMPL; + return kind == OwnerKind.PACKAGE || kind == OwnerKind.DEFAULT_IMPLS; } public static int getMethodAsmFlags(FunctionDescriptor functionDescriptor, OwnerKind kind) { @@ -908,6 +908,6 @@ public class AsmUtil { public static int getReceiverIndex(@NotNull CodegenContext context, @NotNull CallableMemberDescriptor descriptor) { OwnerKind kind = context.getContextKind(); //Trait always should have this descriptor - return kind != OwnerKind.TRAIT_IMPL && isStaticMethod(kind, descriptor) ? 0 : 1; + return kind != OwnerKind.DEFAULT_IMPLS && isStaticMethod(kind, descriptor) ? 0 : 1; } } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ClassBodyCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ClassBodyCodegen.java index 0078f6ec432..89c6c38e0f7 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ClassBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ClassBodyCodegen.java @@ -51,7 +51,7 @@ public abstract class ClassBodyCodegen extends MemberCodegen { @Override protected void generateBody() { - if (kind != OwnerKind.TRAIT_IMPL) { + if (kind != OwnerKind.DEFAULT_IMPLS) { //generate nested classes first and only then generate class body. It necessary to access to nested CodegenContexts for (JetDeclaration declaration : myClass.getDeclarations()) { if (shouldProcessFirst(declaration)) { diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java index 6b55b139620..9670c54d8a2 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ExpressionCodegen.java @@ -335,7 +335,7 @@ public class ExpressionCodegen extends JetVisitor implem if (declaration instanceof JetClass && ((JetClass) declaration).isInterface()) { Type traitImplType = state.getTypeMapper().mapTraitImpl(descriptor); ClassBuilder traitImplBuilder = state.getFactory().newVisitor(TraitImpl(declaration, descriptor), traitImplType, declaration.getContainingFile()); - ClassContext traitImplContext = context.intoAnonymousClass(descriptor, this, OwnerKind.TRAIT_IMPL); + ClassContext traitImplContext = context.intoAnonymousClass(descriptor, this, OwnerKind.DEFAULT_IMPLS); new TraitImplBodyCodegen(declaration, traitImplContext, traitImplBuilder, state, parentCodegen).generate(); } @@ -2012,7 +2012,7 @@ public class ExpressionCodegen extends JetVisitor implem boolean directToField = (expression.getReferencedNameElementType() == JetTokens.FIELD_IDENTIFIER || isSyntheticField) - && contextKind() != OwnerKind.TRAIT_IMPL; + && contextKind() != OwnerKind.DEFAULT_IMPLS; JetSuperExpression superExpression = resolvedCall == null ? null : CallResolverUtilPackage.getSuperCallExpression(resolvedCall.getCall()); propertyDescriptor = context.accessibleDescriptor(propertyDescriptor, superExpression); diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java index d00602b7a38..2595993a26e 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java @@ -106,7 +106,7 @@ public class FunctionCodegen { assert functionDescriptor != null : "No descriptor for function " + function.getText() + "\n" + "in " + function.getContainingFile().getVirtualFile(); - if (owner.getContextKind() != OwnerKind.TRAIT_IMPL || function.hasBody()) { + if (owner.getContextKind() != OwnerKind.DEFAULT_IMPLS || function.hasBody()) { generateMethod(OtherOrigin(function, functionDescriptor), functionDescriptor, new FunctionGenerationStrategy.FunctionDefault(state, functionDescriptor, function)); } @@ -144,7 +144,7 @@ public class FunctionCodegen { OwnerKind contextKind = methodContext.getContextKind(); if (isTrait(functionDescriptor.getContainingDeclaration()) && functionDescriptor.getVisibility() == Visibilities.PRIVATE && - contextKind != OwnerKind.TRAIT_IMPL) { + contextKind != OwnerKind.DEFAULT_IMPLS) { return; } @@ -504,7 +504,7 @@ public class FunctionCodegen { public void generateBridges(@NotNull FunctionDescriptor descriptor) { if (descriptor instanceof ConstructorDescriptor) return; - if (owner.getContextKind() == OwnerKind.TRAIT_IMPL) return; + if (owner.getContextKind() == OwnerKind.DEFAULT_IMPLS) return; if (isTrait(descriptor.getContainingDeclaration())) return; // equals(Any?), hashCode(), toString() never need bridges @@ -585,7 +585,7 @@ public class FunctionCodegen { ) { DeclarationDescriptor contextClass = owner.getContextDescriptor().getContainingDeclaration(); - if (kind != OwnerKind.TRAIT_IMPL && isTrait(contextClass)) { + if (kind != OwnerKind.DEFAULT_IMPLS && isTrait(contextClass)) { return; } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java index f086be09bfd..4643144080c 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/ImplementationBodyCodegen.java @@ -1423,7 +1423,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen { ClassDescriptor containingTrait = (ClassDescriptor) containingDeclaration; Type traitImplType = typeMapper.mapTraitImpl(containingTrait); - Method traitMethod = typeMapper.mapSignature(traitFun.getOriginal(), OwnerKind.TRAIT_IMPL).getAsmMethod(); + Method traitMethod = typeMapper.mapSignature(traitFun.getOriginal(), OwnerKind.DEFAULT_IMPLS).getAsmMethod(); Type[] argTypes = signature.getAsmMethod().getArgumentTypes(); Type[] originalArgTypes = traitMethod.getArgumentTypes(); diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/JvmCodegenUtil.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/JvmCodegenUtil.java index 00d677dd756..6d871a16683 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/JvmCodegenUtil.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/JvmCodegenUtil.java @@ -49,7 +49,6 @@ import java.io.File; import static org.jetbrains.kotlin.descriptors.Modality.ABSTRACT; import static org.jetbrains.kotlin.descriptors.Modality.FINAL; -import static org.jetbrains.kotlin.resolve.DescriptorUtils.isTrait; public class JvmCodegenUtil { @@ -82,7 +81,7 @@ public class JvmCodegenUtil { (((context.hasThisDescriptor() && containingDeclaration == context.getThisDescriptor()) || (context.getParentContext() instanceof PackageContext && isSamePackageInSameModule(context.getParentContext().getContextDescriptor(), containingDeclaration))) - && context.getContextKind() != OwnerKind.TRAIT_IMPL); + && context.getContextKind() != OwnerKind.DEFAULT_IMPLS); } private static boolean isSamePackageInSameModule( diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java index 4beff346dba..5310d0b8a53 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/MemberCodegen.java @@ -210,7 +210,7 @@ public abstract class MemberCodegen this.classOrigin.originKind == PACKAGE_FACADE - TRAIT_IMPL -> this.classOrigin.originKind != TRAIT_IMPL + INTERFACE_DEFAULT_IMPL -> this.classOrigin.originKind != INTERFACE_DEFAULT_IMPL MULTIFILE_CLASS_PART -> this.classOrigin.originKind == MULTIFILE_CLASS else -> false } diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/InlineTestUtil.kt b/compiler/tests/org/jetbrains/kotlin/codegen/InlineTestUtil.kt index fb4d21e248a..351fb005b80 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/InlineTestUtil.kt +++ b/compiler/tests/org/jetbrains/kotlin/codegen/InlineTestUtil.kt @@ -118,7 +118,7 @@ public object InlineTestUtil { val fromCall = MethodInfo(className, this.name, this.desc) //skip delegation to trait impl from child class - if (methodCall.owner.endsWith(JvmAbi.TRAIT_IMPL_SUFFIX) && fromCall.owner != methodCall.owner) { + if (methodCall.owner.endsWith(JvmAbi.DEFAULT_IMPLS_SUFFIX) && fromCall.owner != methodCall.owner) { return } notInlined.add(NotInlinedCall(fromCall, methodCall)) diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/KotlinSyntheticClassAnnotationTest.java b/compiler/tests/org/jetbrains/kotlin/codegen/KotlinSyntheticClassAnnotationTest.java index 964dfc14b68..a6af8720fbc 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/KotlinSyntheticClassAnnotationTest.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/KotlinSyntheticClassAnnotationTest.java @@ -51,7 +51,7 @@ public class KotlinSyntheticClassAnnotationTest extends CodegenTestCase { public void testTraitImpl() { doTestKotlinSyntheticClass( "interface A { fun foo() = 42 }", - JvmAbi.TRAIT_IMPL_SUFFIX, + JvmAbi.DEFAULT_IMPLS_SUFFIX, TRAIT_IMPL ); } diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/SyntheticMethodForAnnotatedPropertyGenTest.java b/compiler/tests/org/jetbrains/kotlin/codegen/SyntheticMethodForAnnotatedPropertyGenTest.java index c2eb6d98c4f..75ed6b8cf49 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/SyntheticMethodForAnnotatedPropertyGenTest.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/SyntheticMethodForAnnotatedPropertyGenTest.java @@ -66,7 +66,7 @@ public class SyntheticMethodForAnnotatedPropertyGenTest extends CodegenTestCase loadFile(); GeneratedClassLoader loader = generateAndCreateClassLoader(); assertAnnotatedSyntheticMethodExistence(false, loader.loadClass("T")); - assertAnnotatedSyntheticMethodExistence(true, loader.loadClass("T" + JvmAbi.TRAIT_IMPL_SUFFIX)); + assertAnnotatedSyntheticMethodExistence(true, loader.loadClass("T" + JvmAbi.DEFAULT_IMPLS_SUFFIX)); } private static void assertAnnotatedSyntheticMethodExistence(boolean expected, @NotNull Class clazz) { diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAbi.java b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAbi.java index fd15d75d6c1..d10d574a1e3 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAbi.java +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAbi.java @@ -36,8 +36,8 @@ public final class JvmAbi { */ public static final BinaryVersion VERSION = BinaryVersion.create(0, 27, 0); - public static final String TRAIT_IMPL_CLASS_NAME = "$TImpl"; - public static final String TRAIT_IMPL_SUFFIX = "$" + TRAIT_IMPL_CLASS_NAME; + public static final String DEFAULT_IMPLS_CLASS_NAME = "$TImpl"; + public static final String DEFAULT_IMPLS_SUFFIX = "$" + DEFAULT_IMPLS_CLASS_NAME; public static final String DEFAULT_PARAMS_IMPL_SUFFIX = "$default"; diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/resolve/jvm/JvmClassName.java b/core/descriptor.loader.java/src/org/jetbrains/kotlin/resolve/jvm/JvmClassName.java index 8a3d0a6e189..605ca42759e 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/resolve/jvm/JvmClassName.java +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/resolve/jvm/JvmClassName.java @@ -70,10 +70,10 @@ public class JvmClassName { public FqName getFqNameForClassNameWithoutDollars() { if (fqName == null) { String fqName = internalName - .replace(JvmAbi.TRAIT_IMPL_CLASS_NAME, TRAIT_IMPL_REPLACE_GUARD) + .replace(JvmAbi.DEFAULT_IMPLS_CLASS_NAME, TRAIT_IMPL_REPLACE_GUARD) .replace('$', '.') .replace('/', '.') - .replace(TRAIT_IMPL_REPLACE_GUARD, JvmAbi.TRAIT_IMPL_CLASS_NAME); + .replace(TRAIT_IMPL_REPLACE_GUARD, JvmAbi.DEFAULT_IMPLS_CLASS_NAME); this.fqName = new FqName(fqName); } return fqName; diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/AbstractInternalCompiledClassesTest.kt b/idea/tests/org/jetbrains/kotlin/idea/decompiler/AbstractInternalCompiledClassesTest.kt index 32decf847fe..b216ea5e582 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/AbstractInternalCompiledClassesTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/AbstractInternalCompiledClassesTest.kt @@ -30,7 +30,6 @@ import org.jetbrains.kotlin.load.java.JvmAnnotationNames.KotlinSyntheticClass.Ki import org.jetbrains.kotlin.load.kotlin.KotlinBinaryClassCache import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader import org.junit.Assert -import kotlin.test.assertFalse public abstract class AbstractInternalCompiledClassesTest : JetLightCodeInsightFixtureTestCase() { private fun isFileWithHeader(predicate: (KotlinClassHeader) -> Boolean) : VirtualFile.() -> Boolean = { @@ -58,7 +57,7 @@ public abstract class AbstractInternalCompiledClassesTest : JetLightCodeInsightF decompiledPsiFile is PsiJavaFile) val classes = (decompiledPsiFile as PsiJavaFile).getClasses() Assert.assertTrue("Should have some decompiled text", - classes.size() == 1 && classes[0].getName()!!.endsWith(JvmAbi.TRAIT_IMPL_SUFFIX)) + classes.size() == 1 && classes[0].getName()!!.endsWith(JvmAbi.DEFAULT_IMPLS_SUFFIX)) } }