diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/data/ResolverScopeData.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/data/ResolverScopeData.java index ab8595b5d64..9186575694e 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/data/ResolverScopeData.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/data/ResolverScopeData.java @@ -64,7 +64,7 @@ public abstract class ResolverScopeData { this.origin = determineOrigin(psiClass); //TODO: move check to remove fqName parameter - if (fqName != null && fqName.lastSegmentIs(Name.identifier(JvmAbi.PACKAGE_CLASS)) && psiClass != null && isKotlin()) { + if (fqName != null && fqName.lastSegmentIs(Name.identifier(JvmAbi.PACKAGE_CLASS)) && psiClass != null && getOrigin() == KOTLIN) { throw new IllegalStateException("Kotlin namespace cannot have last segment " + JvmAbi.PACKAGE_CLASS + ": " + fqName); } } @@ -87,7 +87,7 @@ public abstract class ResolverScopeData { @NotNull public MembersCache getMembersCache() { if (membersCache == null) { - membersCache = MembersCache.buildMembersByNameCache(psiClass, psiPackage, staticMembers, isKotlin()); + membersCache = MembersCache.buildMembersByNameCache(psiClass, psiPackage, staticMembers, getOrigin() == KOTLIN); } return membersCache; } @@ -102,8 +102,9 @@ public abstract class ResolverScopeData { return psiPackage; } - public boolean isKotlin() { - return origin == KOTLIN; + @NotNull + public Origin getOrigin() { + return origin; } public boolean isStaticMembers() { diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java index a67ca377e79..0a220d0d63a 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java @@ -42,6 +42,9 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import static org.jetbrains.jet.lang.resolve.java.data.Origin.JAVA; +import static org.jetbrains.jet.lang.resolve.java.data.Origin.KOTLIN; + public final class JavaFunctionResolver { private JavaTypeTransformer typeTransformer; @@ -95,7 +98,7 @@ public final class JavaFunctionResolver { final PsiMethod psiMethod = method.getPsiMethod(); final PsiClass containingClass = psiMethod.getContainingClass(); - if (scopeData.isKotlin()) { + if (scopeData.getOrigin() == KOTLIN) { // TODO: unless maybe class explicitly extends Object assert containingClass != null; String ownerClassName = containingClass.getQualifiedName(); @@ -158,7 +161,7 @@ public final class JavaFunctionResolver { BindingContextUtils.recordFunctionDeclarationToDescriptor(trace, psiMethod, functionDescriptorImpl); } - if (!scopeData.isKotlin()) { + if (scopeData.getOrigin() == JAVA) { trace.record(BindingContext.IS_DECLARED_IN_JAVA, functionDescriptorImpl); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPropertyResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPropertyResolver.java index 9cad70f6a36..e0d292f913f 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPropertyResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPropertyResolver.java @@ -44,6 +44,8 @@ import org.jetbrains.jet.lang.types.TypeUtils; import javax.inject.Inject; import java.util.*; +import static org.jetbrains.jet.lang.resolve.java.data.Origin.JAVA; + public final class JavaPropertyResolver { private JavaSemanticServices semanticServices; @@ -241,7 +243,7 @@ public final class JavaPropertyResolver { recordObjectDeclarationClassIfNeeded(psiData, realOwner, propertyDescriptor, propertyType); - if (!scopeData.isKotlin()) { + if (scopeData.getOrigin() == JAVA) { trace.record(BindingContext.IS_DECLARED_IN_JAVA, propertyDescriptor); } return propertyDescriptor; @@ -419,7 +421,7 @@ public final class JavaPropertyResolver { } private static boolean isPropertyFinal(ResolverScopeData scopeData, PropertyPsiData psiData) { - if (!scopeData.isKotlin()) { + if (scopeData.getOrigin() == JAVA) { return true; } return psiData.isFinal(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java index d8572d0ace7..9648013da15 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaSupertypeResolver.java @@ -43,6 +43,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; +import static org.jetbrains.jet.lang.resolve.java.data.Origin.KOTLIN; + public final class JavaSupertypeResolver { private BindingTrace trace; @@ -142,7 +144,7 @@ public final class JavaSupertypeResolver { @NotNull ClassDescriptor classDescriptor, @NotNull List result ) { - if (classData.isKotlin() + if (classData.getOrigin() == KOTLIN || DescriptorResolverUtils.OBJECT_FQ_NAME.equalsTo(psiClass.getQualifiedName()) // TODO: annotations || classDescriptor.getKind() == ClassKind.ANNOTATION_CLASS) {