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 20231862102..6628829d162 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 @@ -50,7 +50,7 @@ public final class DescriptorResolverUtils { return new PsiClassWrapper(psiClass).getJetClass().isDefined() || psiClass.getName().equals(JvmAbi.PACKAGE_CLASS); } - public static boolean isInnerEnum(@NotNull PsiClass innerClass, DeclarationDescriptor owner) { + public static boolean isInnerEnum(@NotNull PsiClass innerClass, @Nullable DeclarationDescriptor owner) { if (!innerClass.isEnum()) return false; if (!(owner instanceof ClassDescriptor)) return false; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index cfa7861420a..13f71e7bf06 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -164,10 +164,12 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes return propertiesResolver.resolveFieldGroup(data); } + @Nullable public ClassDescriptor resolveClass(FqName name, DescriptorSearchRule searchRule, List list) { return classResolver.resolveClass(name, searchRule, list); } + @Nullable public CompileTimeConstant getCompileTimeConstFromExpression( FqName annotationName, Name parameterName, diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/AnnotationResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/AnnotationResolver.java index 37ab7cb0290..d526767560e 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/AnnotationResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/AnnotationResolver.java @@ -99,6 +99,7 @@ public final class AnnotationResolver { if (name == null) name = "value"; Name identifier = Name.identifier(name); + assert value != null; CompileTimeConstant compileTimeConst = javaDescriptorResolver.getCompileTimeConstFromExpression(annotationFqName, identifier, value, taskList); if (compileTimeConst != null) { diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ClassResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ClassResolver.java index 9e3046e802c..9aa7049f1fa 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ClassResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ClassResolver.java @@ -94,6 +94,7 @@ public final class ClassResolver { return clazz; } + @Nullable public ClassDescriptor resolveClass( @NotNull FqName qualifiedName, @NotNull DescriptorSearchRule searchRule, diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/FunctionResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/FunctionResolver.java index 1719008d30e..6a2e49e32db 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/FunctionResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/FunctionResolver.java @@ -142,7 +142,7 @@ public final class FunctionResolver { } private void resolveNamedGroupFunctions( - @NotNull ClassOrNamespaceDescriptor owner, PsiClass psiClass, + @NotNull ClassOrNamespaceDescriptor owner, @NotNull PsiClass psiClass, NamedMembers namedMembers, Name methodName, ResolverScopeData scopeData ) { if (namedMembers.getFunctionDescriptors() != null) { @@ -195,6 +195,7 @@ public final class FunctionResolver { namedMembers.setFunctionDescriptors(functions); } + @NotNull public Set resolveFunctionGroup(Name methodName, ResolverScopeData scopeData) { DescriptorResolverUtils.getResolverScopeData(scopeData); @@ -203,10 +204,14 @@ public final class FunctionResolver { NamedMembers namedMembers = namedMembersMap.get(methodName); if (namedMembers != null) { - resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), scopeData.getPsiClass(), namedMembers, + PsiClass psiClass = scopeData.getPsiClass(); + assert psiClass != null; + resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), psiClass, namedMembers, methodName, scopeData); - return namedMembers.getFunctionDescriptors(); + Set result = namedMembers.getFunctionDescriptors(); + assert result != null; + return result; } else { return Collections.emptySet(); @@ -261,7 +266,9 @@ public final class FunctionResolver { for (Map.Entry entry : scopeData.getNamedMembersMap().entrySet()) { Name methodName = entry.getKey(); NamedMembers namedMembers = entry.getValue(); - resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), scopeData.getPsiClass(), + PsiClass psiClass = scopeData.getPsiClass(); + assert psiClass != null; + resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), psiClass, namedMembers, methodName, scopeData); functions.addAll(namedMembers.getFunctionDescriptors()); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/NamespaceResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/NamespaceResolver.java index c121e0cb944..d8512075ab0 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/NamespaceResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/NamespaceResolver.java @@ -86,10 +86,12 @@ public final class NamespaceResolver { return scopeData.getNamespaceDescriptor(); } + @Nullable public NamespaceDescriptor resolveNamespace(@NotNull FqName qualifiedName) { return resolveNamespace(qualifiedName, DescriptorSearchRule.ERROR_IF_FOUND_IN_KOTLIN); } + @Nullable private NamespaceDescriptorParent resolveParentNamespace(FqName fqName) { if (fqName.isRoot()) { return FAKE_ROOT_MODULE; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PropertiesResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PropertiesResolver.java index 31979bb66d0..fbb6d882760 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PropertiesResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PropertiesResolver.java @@ -20,6 +20,7 @@ import com.google.common.collect.Sets; import com.intellij.openapi.util.Pair; import com.intellij.psi.PsiClass; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.resolve.BindingContext; @@ -61,7 +62,9 @@ public final class PropertiesResolver { resolveNamedGroupProperties(scopeData.getClassOrNamespaceDescriptor(), scopeData, namedMembers, fieldName, "class or namespace " + qualifiedName); - return namedMembers.getPropertyDescriptors(); + Set result = namedMembers.getPropertyDescriptors(); + assert result != null; + return result; } @NotNull @@ -350,6 +353,7 @@ public final class PropertiesResolver { return propertyType; } + @Nullable private JetType getReceiverType( PropertyAccessorData characteristicMember, TypeVariableResolver typeVariableResolverForPropertyInternals @@ -426,7 +430,7 @@ public final class PropertiesResolver { return r; } - private static String key(TypeSource typeSource) { + private static String key(@Nullable TypeSource typeSource) { if (typeSource == null) { return ""; } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ValueParameterResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ValueParameterResolver.java index 4f19adab12d..82849fb3e3f 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ValueParameterResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ValueParameterResolver.java @@ -19,6 +19,7 @@ package org.jetbrains.jet.lang.resolve.java.resolver; import com.intellij.psi.PsiEllipsisType; import com.intellij.psi.PsiType; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptorImpl; @@ -58,7 +59,7 @@ public final class ValueParameterResolver { PsiType psiType = parameter.getPsiParameter().getType(); // TODO: must be very slow, make it lazy? - Name name = Name.identifier(parameter.getPsiParameter().getName() != null ? parameter.getPsiParameter().getName() : "p" + i); + Name name = Name.identifier(getParameterName(i, parameter)); if (parameter.getJetValueParameter().name().length() > 0) { name = Name.identifier(parameter.getJetValueParameter().name()); @@ -114,6 +115,12 @@ public final class ValueParameterResolver { } } + @NotNull + private static String getParameterName(int number, @NotNull PsiParameterWrapper parameter) { + String psiParameterName = parameter.getPsiParameter().getName(); + return psiParameterName != null ? psiParameterName : "p" + number; + } + public JavaDescriptorResolver.ValueParameterDescriptors resolveParameterDescriptors( DeclarationDescriptor containingDeclaration, List parameters, TypeVariableResolver typeVariableResolver @@ -156,8 +163,8 @@ public final class ValueParameterResolver { private JvmMethodParameterMeaning( JvmMethodParameterKind kind, - JetType receiverType, - ValueParameterDescriptor valueParameterDescriptor + @Nullable JetType receiverType, + @Nullable ValueParameterDescriptor valueParameterDescriptor ) { this.kind = kind; this.receiverType = receiverType;