diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/DescriptorResolverUtils.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/DescriptorResolverUtils.java index 28e1a11abda..7df14ca8ab1 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/DescriptorResolverUtils.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/DescriptorResolverUtils.java @@ -99,8 +99,7 @@ public final class DescriptorResolverUtils { * corresponding package). This applies to enum entries, values() and valueOf(String) methods */ public static boolean shouldBeInEnumClassObject(@NotNull JavaMember member) { - JavaClass javaClass = member.getContainingClass(); - if (javaClass == null || !javaClass.isEnum()) return false; + if (!member.getContainingClass().isEnum()) return false; if (member instanceof JavaField && ((JavaField) member).isEnumEntry()) return true; @@ -117,13 +116,7 @@ public final class DescriptorResolverUtils { } public static boolean isObjectMethodInInterface(@NotNull JavaMember member) { - if (!(member instanceof JavaMethod)) { - return false; - } - JavaClass containingClass = member.getContainingClass(); - assert containingClass != null : "Containing class is null for member: " + member; - - return containingClass.isInterface() && isObjectMethod((JavaMethod) member); + return member.getContainingClass().isInterface() && member instanceof JavaMethod && isObjectMethod((JavaMethod) member); } public static boolean isObjectMethod(@NotNull JavaMethod method) { diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/PropagationHeuristics.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/PropagationHeuristics.java index 3effb7dfe4b..2c1e64bcecd 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/PropagationHeuristics.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/PropagationHeuristics.java @@ -153,10 +153,7 @@ class PropagationHeuristics { return Collections.emptyList(); } - JavaClass containingClass = initialMethod.getContainingClass(); - assert containingClass != null : " containing class is null for " + initialMethod; - - for (JavaClassifierType supertype : containingClass.getSupertypes()) { + for (JavaClassifierType supertype : initialMethod.getContainingClass().getSupertypes()) { collectFromSupertype(supertype); } @@ -234,11 +231,10 @@ class PropagationHeuristics { } private static boolean canHaveSuperMethod(@NotNull JavaMethod method) { - if (method.isConstructor() || method.isStatic() || method.getVisibility() == Visibilities.PRIVATE) { - return false; - } - JavaClass containingClass = method.getContainingClass(); - return containingClass != null && !JavaSupertypeResolver.OBJECT_FQ_NAME.equals(containingClass.getFqName()); + return !method.isConstructor() && + !method.isStatic() && + method.getVisibility() != Visibilities.PRIVATE && + !JavaSupertypeResolver.OBJECT_FQ_NAME.equals(method.getContainingClass().getFqName()); } } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/SignaturesPropagationData.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/SignaturesPropagationData.java index 694feba829e..3514bcbbd9f 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/SignaturesPropagationData.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/SignaturesPropagationData.java @@ -222,7 +222,6 @@ public class SignaturesPropagationData { for (JavaMethod superMethod : PropagationHeuristics.getSuperMethods(method)) { JavaClass javaClass = superMethod.getContainingClass(); - assert javaClass != null : "Super method doesn't have a containing class: " + superMethod; FqName classFqName = javaClass.getFqName(); assert classFqName != null : "Class FQ name should not be null: " + javaClass; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaAnnotationArgumentResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaAnnotationArgumentResolver.java index 54670d2c5f1..085d97c7f08 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaAnnotationArgumentResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaAnnotationArgumentResolver.java @@ -121,10 +121,7 @@ public final class JavaAnnotationArgumentResolver { JavaField field = (JavaField) element; if (!field.isEnumEntry()) return null; - JavaClass javaClass = field.getContainingClass(); - if (javaClass == null) return null; - - FqName fqName = javaClass.getFqName(); + FqName fqName = field.getContainingClass().getFqName(); if (fqName == null) return null; ClassDescriptor enumClass = classResolver.resolveClass(fqName, INCLUDE_KOTLIN_SOURCES, taskList); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java index c0800c75eb3..7e5532689ec 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java @@ -351,7 +351,6 @@ public final class JavaClassResolver { @NotNull ClassDescriptorFromJvmBytecode samInterface ) { JavaClass methodContainer = samInterfaceMethod.getContainingClass(); - assert methodContainer != null : "method container is null for " + samInterfaceMethod; FqName containerFqName = methodContainer.getFqName(); assert containerFqName != null : "qualified name is null for " + methodContainer; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaMethodSignatureUtil.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaMethodSignatureUtil.java index dcf4208277a..bba194d33e7 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaMethodSignatureUtil.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaMethodSignatureUtil.java @@ -31,7 +31,6 @@ class JavaMethodSignatureUtil { // This and following methods are originally from com.intellij.codeInsight.daemon.impl.analysis.HighlightMethodUtil static boolean isMethodReturnTypeCompatible(@NotNull JavaMethod method) { if (method.isStatic()) return true; - if (method.getContainingClass() == null) return false; HierarchicalMethodSignature methodSignature = method.getPsi().getHierarchicalMethodSignature(); List superSignatures = methodSignature.getSuperSignatures(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/MembersCache.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/MembersCache.java index fe416a7dc78..baf7252a76d 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/MembersCache.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/MembersCache.java @@ -219,9 +219,7 @@ import java.util.Map; } private boolean isInCurrentClass(@NotNull JavaMember member) { - JavaClass containingClass = member.getContainingClass(); - if (containingClass == null) return false; - FqName fqName = containingClass.getFqName(); + FqName fqName = member.getContainingClass().getFqName(); return fqName != null && fqName.equals(javaClass.getFqName()); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaMember.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaMember.java index 174f7d27c1c..76ad937d8bb 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaMember.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaMember.java @@ -25,7 +25,6 @@ public interface JavaMember extends JavaModifierListOwner, JavaAnnotationOwner, @Override PsiMember getPsi(); - // TODO: NotNull ? - @Nullable + @NotNull JavaClass getContainingClass(); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaMemberImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaMemberImpl.java index 709bbd59a26..4de036aeb5c 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaMemberImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaMemberImpl.java @@ -45,12 +45,12 @@ public abstract class JavaMemberImpl extends JavaElementImpl implements JavaMemb return Name.identifier(name); } - // TODO: NotNull? - @Nullable + @NotNull @Override public JavaClass getContainingClass() { PsiClass psiClass = getPsi().getContainingClass(); - return psiClass == null ? null : new JavaClass(psiClass); + assert psiClass != null : "Member must have a containing class: " + getPsi(); + return new JavaClass(psiClass); } @Override