From 4cd238ddde86e78fba5fa25bc0b2ace3a89eb067 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 20 Aug 2013 15:42:26 +0400 Subject: [PATCH] Pull down getPsi() method from JavaElement --- .../AlternativeFieldSignatureData.java | 6 ++--- .../AlternativeMethodSignatureData.java | 3 ++- .../PropagationHeuristics.java | 6 +++-- .../SignaturesPropagationData.java | 20 +++++++------- .../PsiBasedExternalAnnotationResolver.java | 5 ++-- .../PsiBasedMethodSignatureChecker.java | 9 ++++--- .../TraceBasedExternalSignatureResolver.java | 12 ++++++--- .../resolver/TraceBasedJavaResolverCache.java | 24 ++++++++++------- .../java/structure/JavaAnnotation.java | 5 ---- .../structure/JavaAnnotationArgument.java | 6 ----- .../JavaAnnotationAsAnnotationArgument.java | 5 ---- .../java/structure/JavaAnnotationOwner.java | 5 ---- .../JavaArrayAnnotationArgument.java | 5 ---- .../resolve/java/structure/JavaArrayType.java | 5 ---- .../resolve/java/structure/JavaClass.java | 5 ---- .../java/structure/JavaClassifier.java | 6 ----- .../java/structure/JavaClassifierType.java | 5 ---- .../resolve/java/structure/JavaElement.java | 5 ---- .../resolve/java/structure/JavaField.java | 5 ---- .../JavaLiteralAnnotationArgument.java | 6 ----- .../resolve/java/structure/JavaMember.java | 6 ----- .../resolve/java/structure/JavaMethod.java | 5 ---- .../java/structure/JavaModifierListOwner.java | 5 ---- .../resolve/java/structure/JavaPackage.java | 5 ---- .../java/structure/JavaPrimitiveType.java | 5 ---- .../JavaReferenceAnnotationArgument.java | 6 ----- .../lang/resolve/java/structure/JavaType.java | 5 ---- .../java/structure/JavaTypeParameter.java | 5 ---- .../java/structure/JavaValueParameter.java | 5 ---- .../java/structure/JavaWildcardType.java | 5 ---- .../impl/JavaAnnotationOwnerImpl.java | 26 +++++++++++++++++++ .../java/structure/impl/JavaClassImpl.java | 2 +- .../impl/JavaElementFactoryImpl.java | 2 +- .../java/structure/impl/JavaElementImpl.java | 3 +-- .../java/structure/impl/JavaElementUtil.java | 22 ++++++++-------- .../java/structure/impl/JavaMemberImpl.java | 2 +- .../impl/JavaModifierListOwnerImpl.java | 26 +++++++++++++++++++ .../impl/JavaSignatureFormatterImpl.java | 4 +-- .../java/structure/impl/JavaTypeImpl.java | 3 +-- .../impl/JavaTypeSubstitutorImpl.java | 8 +++--- .../impl/JavaValueParameterImpl.java | 2 +- 41 files changed, 125 insertions(+), 175 deletions(-) create mode 100644 compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaAnnotationOwnerImpl.java create mode 100644 compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaModifierListOwnerImpl.java diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeFieldSignatureData.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeFieldSignatureData.java index d02e3da27b5..e7d07414283 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeFieldSignatureData.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeFieldSignatureData.java @@ -24,7 +24,7 @@ import org.jetbrains.jet.lang.descriptors.impl.TypeParameterDescriptorImpl; import org.jetbrains.jet.lang.psi.JetProperty; import org.jetbrains.jet.lang.psi.JetPsiFactory; import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver; -import org.jetbrains.jet.lang.resolve.java.structure.JavaField; +import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaFieldImpl; import org.jetbrains.jet.lang.types.JetType; import java.util.HashMap; @@ -34,7 +34,7 @@ public class AlternativeFieldSignatureData extends ElementAlternativeSignatureDa public AlternativeFieldSignatureData( @NotNull JavaAnnotationResolver annotationResolver, - @NotNull JavaField field, + @NotNull JavaFieldImpl field, @NotNull JetType originalReturnType, boolean isVar ) { @@ -66,7 +66,7 @@ public class AlternativeFieldSignatureData extends ElementAlternativeSignatureDa return altReturnType; } - private static void checkFieldAnnotation(@NotNull JetProperty altProperty, @NotNull JavaField field, boolean isVar) { + private static void checkFieldAnnotation(@NotNull JetProperty altProperty, @NotNull JavaFieldImpl field, boolean isVar) { if (!ComparatorUtil.equalsNullable(field.getName().asString(), altProperty.getName())) { throw new AlternativeSignatureMismatchException("Field name mismatch, original: %s, alternative: %s", field.getName().asString(), altProperty.getName()); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeMethodSignatureData.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeMethodSignatureData.java index a82fa5fb6e6..df4ff47c740 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeMethodSignatureData.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/kotlinSignature/AlternativeMethodSignatureData.java @@ -28,6 +28,7 @@ import org.jetbrains.jet.lang.descriptors.impl.ValueParameterDescriptorImpl; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver; import org.jetbrains.jet.lang.resolve.java.structure.JavaMethod; +import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaMethodImpl; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.TypeSubstitutor; @@ -54,7 +55,7 @@ public class AlternativeMethodSignatureData extends ElementAlternativeSignatureD public AlternativeMethodSignatureData( @NotNull JavaAnnotationResolver annotationResolver, - @NotNull JavaMethod method, + @NotNull JavaMethodImpl method, @Nullable JetType receiverType, @NotNull List valueParameters, @Nullable JetType originalReturnType, 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 5d0355105a4..e125fc21d66 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 @@ -29,6 +29,7 @@ import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor; import org.jetbrains.jet.lang.descriptors.Visibilities; import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver; import org.jetbrains.jet.lang.resolve.java.structure.*; +import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaMethodImpl; import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaTypeSubstitutorImpl; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.scopes.JetScope; @@ -123,9 +124,10 @@ class PropagationHeuristics { return null; } + @SuppressWarnings("unchecked") @NotNull - static List getSuperMethods(@NotNull JavaMethod method) { - return new SuperMethodCollector(method).collect(); + static List getSuperMethods(@NotNull JavaMethod method) { + return (List) new SuperMethodCollector(method).collect(); } private PropagationHeuristics() { 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 47692372b7f..0187ea55864 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 @@ -72,7 +72,7 @@ public class SignaturesPropagationData { @Nullable JetType receiverType, @NotNull List autoValueParameters, // descriptors built by parameters resolver @NotNull List autoTypeParameters, // descriptors built by signature resolver - @NotNull JavaMethod method, + @NotNull JavaMethodImpl method, @NotNull BindingTrace trace ) { this.containingClass = containingClass; @@ -215,7 +215,7 @@ public class SignaturesPropagationData { } private static List getSuperFunctionsForMethod( - @NotNull JavaMethod method, + @NotNull JavaMethodImpl method, @NotNull BindingTrace trace, @NotNull ClassDescriptor containingClass ) { @@ -223,10 +223,10 @@ public class SignaturesPropagationData { Map superclassToSupertype = getSuperclassToSupertypeMap(containingClass); - Multimap> superclassToFunctions = + Multimap> superclassToFunctions = getSuperclassToFunctionsMultimap(method, trace.getBindingContext(), containingClass); - for (JavaMethod superMethod : PropagationHeuristics.getSuperMethods(method)) { + for (JavaMethodImpl superMethod : PropagationHeuristics.getSuperMethods(method)) { JavaClass javaClass = superMethod.getContainingClass(); FqName classFqName = javaClass.getFqName(); assert classFqName != null : "Class FQ name should not be null: " + javaClass; @@ -268,12 +268,12 @@ public class SignaturesPropagationData { } @NotNull - private static Multimap> getSuperclassToFunctionsMultimap( + private static Multimap> getSuperclassToFunctionsMultimap( @NotNull JavaMethod method, @NotNull BindingContext bindingContext, @NotNull ClassDescriptor containingClass ) { - Multimap> result = HashMultimap.create(); + Multimap> result = HashMultimap.create(); Name functionName = method.getName(); int parameterCount = method.getValueParameters().size(); @@ -289,7 +289,7 @@ public class SignaturesPropagationData { fun.getValueParameters().size() + (fun.getReceiverParameter() != null ? 1 : 0) == parameterCount) { PsiElement declaration = BindingContextUtils.descriptorToDeclaration(bindingContext, fun); if (declaration instanceof PsiMethod) { - result.put(fqName, Pair.create(fun, new JavaMethodImpl((PsiMethod) declaration))); + result.put(fqName, Pair.create(fun, new JavaMethodImpl((PsiMethod) declaration))); } // else declaration is null or JetNamedFunction: both cases are processed later } } @@ -299,11 +299,11 @@ public class SignaturesPropagationData { @Nullable private static DeclarationDescriptor findSuperFunction( - @NotNull Collection> superFunctionCandidates, - @NotNull JavaMethod superMethod + @NotNull Collection> superFunctionCandidates, + @NotNull JavaMethodImpl superMethod ) { PsiManager psiManager = PsiManager.getInstance(superMethod.getPsi().getProject()); - for (Pair candidate : superFunctionCandidates) { + for (Pair candidate : superFunctionCandidates) { if (psiManager.areElementsEquivalent(candidate.second.getPsi(), superMethod.getPsi())) { return candidate.first; } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PsiBasedExternalAnnotationResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PsiBasedExternalAnnotationResolver.java index aac85e37f6e..67457eee3af 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PsiBasedExternalAnnotationResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PsiBasedExternalAnnotationResolver.java @@ -26,6 +26,7 @@ import org.jetbrains.jet.lang.resolve.java.JvmClassName; import org.jetbrains.jet.lang.resolve.java.structure.JavaAnnotation; import org.jetbrains.jet.lang.resolve.java.structure.JavaAnnotationOwner; import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaAnnotationImpl; +import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaAnnotationOwnerImpl; import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaElementCollectionFromPsiArrayUtil; import org.jetbrains.jet.lang.resolve.name.FqName; @@ -36,14 +37,14 @@ public class PsiBasedExternalAnnotationResolver implements ExternalAnnotationRes @Nullable @Override public JavaAnnotation findExternalAnnotation(@NotNull JavaAnnotationOwner owner, @NotNull FqName fqName) { - PsiAnnotation psiAnnotation = findExternalAnnotation(owner.getPsi(), fqName); + PsiAnnotation psiAnnotation = findExternalAnnotation(((JavaAnnotationOwnerImpl) owner).getPsi(), fqName); return psiAnnotation == null ? null : new JavaAnnotationImpl(psiAnnotation); } @NotNull @Override public Collection findExternalAnnotations(@NotNull JavaAnnotationOwner owner) { - PsiModifierListOwner psiOwner = owner.getPsi(); + PsiModifierListOwner psiOwner = ((JavaAnnotationOwnerImpl) owner).getPsi(); PsiAnnotation[] annotations = ExternalAnnotationsManager.getInstance(psiOwner.getProject()).findExternalAnnotations(psiOwner); return annotations == null ? Collections.emptyList() diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PsiBasedMethodSignatureChecker.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PsiBasedMethodSignatureChecker.java index d2e1cfae9d6..f6ba7d2c3ed 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PsiBasedMethodSignatureChecker.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PsiBasedMethodSignatureChecker.java @@ -107,7 +107,7 @@ public class PsiBasedMethodSignatureChecker implements MethodSignatureChecker { } // Originally from com.intellij.codeInsight.daemon.impl.analysis.HighlightMethodUtil - private static boolean isMethodReturnTypeCompatible(@NotNull JavaMethod method) { + private static boolean isMethodReturnTypeCompatible(@NotNull JavaMethodImpl method) { if (method.isStatic()) return true; HierarchicalMethodSignature methodSignature = method.getPsi().getHierarchicalMethodSignature(); @@ -167,8 +167,9 @@ public class PsiBasedMethodSignatureChecker implements MethodSignatureChecker { @NotNull List signatureErrors, @NotNull List superFunctions ) { - if (!RawTypesCheck.hasRawTypesInHierarchicalSignature(method) && - isMethodReturnTypeCompatible(method) && + JavaMethodImpl methodWithPsi = (JavaMethodImpl) method; + if (!RawTypesCheck.hasRawTypesInHierarchicalSignature(methodWithPsi) && + isMethodReturnTypeCompatible(methodWithPsi) && !containsErrorType(superFunctions, descriptor)) { if (signatureErrors.isEmpty()) { for (FunctionDescriptor superFunction : superFunctions) { @@ -236,7 +237,7 @@ public class PsiBasedMethodSignatureChecker implements MethodSignatureChecker { return false; } - public static boolean hasRawTypesInHierarchicalSignature(@NotNull JavaMethod method) { + public static boolean hasRawTypesInHierarchicalSignature(@NotNull JavaMethodImpl method) { // This is a very important optimization: package-classes are big and full of static methods // building method hierarchies for such classes takes a very long time if (method.isStatic()) return false; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/TraceBasedExternalSignatureResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/TraceBasedExternalSignatureResolver.java index 29359bb4a94..17fab3b88ea 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/TraceBasedExternalSignatureResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/TraceBasedExternalSignatureResolver.java @@ -29,6 +29,8 @@ import org.jetbrains.jet.lang.resolve.java.kotlinSignature.AlternativeMethodSign import org.jetbrains.jet.lang.resolve.java.kotlinSignature.SignaturesPropagationData; import org.jetbrains.jet.lang.resolve.java.structure.JavaField; import org.jetbrains.jet.lang.resolve.java.structure.JavaMethod; +import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaFieldImpl; +import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaMethodImpl; import org.jetbrains.jet.lang.types.JetType; import javax.inject.Inject; @@ -60,7 +62,8 @@ public class TraceBasedExternalSignatureResolver implements ExternalSignatureRes @NotNull List typeParameters ) { SignaturesPropagationData data = - new SignaturesPropagationData(owner, returnType, receiverType, valueParameters, typeParameters, method, trace); + new SignaturesPropagationData(owner, returnType, receiverType, valueParameters, typeParameters, (JavaMethodImpl) method, + trace); return new PropagatedMethodSignature(data.getModifiedReturnType(), data.getModifiedReceiverType(), data.getModifiedValueParameters(), data.getModifiedTypeParameters(), data.getSignatureErrors(), data.getSuperFunctions()); @@ -77,8 +80,8 @@ public class TraceBasedExternalSignatureResolver implements ExternalSignatureRes @NotNull List typeParameters ) { AlternativeMethodSignatureData data = - new AlternativeMethodSignatureData(annotationResolver, method, receiverType, valueParameters, returnType, typeParameters, - hasSuperMethods); + new AlternativeMethodSignatureData(annotationResolver, (JavaMethodImpl) method, receiverType, valueParameters, returnType, + typeParameters, hasSuperMethods); if (data.isAnnotated() && !data.hasErrors()) { return new AlternativeMethodSignature(data.getReturnType(), receiverType, data.getValueParameters(), data.getTypeParameters(), @@ -96,7 +99,8 @@ public class TraceBasedExternalSignatureResolver implements ExternalSignatureRes @NotNull JetType returnType, boolean isVar ) { - AlternativeFieldSignatureData data = new AlternativeFieldSignatureData(annotationResolver, field, returnType, isVar); + AlternativeFieldSignatureData data = + new AlternativeFieldSignatureData(annotationResolver, (JavaFieldImpl) field, returnType, isVar); if (data.isAnnotated() && !data.hasErrors()) { return new AlternativeFieldSignature(data.getReturnType(), null); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/TraceBasedJavaResolverCache.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/TraceBasedJavaResolverCache.java index c76071b5544..417105340c2 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/TraceBasedJavaResolverCache.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/TraceBasedJavaResolverCache.java @@ -17,6 +17,7 @@ package org.jetbrains.jet.lang.resolve.java.resolver; import com.intellij.psi.PsiExpression; +import com.intellij.psi.PsiField; import com.intellij.psi.PsiLiteralExpression; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -31,6 +32,10 @@ import org.jetbrains.jet.lang.resolve.java.structure.JavaClass; import org.jetbrains.jet.lang.resolve.java.structure.JavaElement; import org.jetbrains.jet.lang.resolve.java.structure.JavaField; import org.jetbrains.jet.lang.resolve.java.structure.JavaMethod; +import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaClassImpl; +import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaElementImpl; +import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaFieldImpl; +import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaMethodImpl; import org.jetbrains.jet.lang.resolve.name.FqName; import javax.inject.Inject; @@ -65,37 +70,38 @@ public class TraceBasedJavaResolverCache implements JavaResolverCache { @Nullable @Override public SimpleFunctionDescriptor getMethod(@NotNull JavaMethod method) { - return trace.get(FUNCTION, method.getPsi()); + return trace.get(FUNCTION, ((JavaMethodImpl) method).getPsi()); } @Nullable @Override public ConstructorDescriptor getConstructor(@NotNull JavaElement constructor) { - return trace.get(CONSTRUCTOR, constructor.getPsi()); + return trace.get(CONSTRUCTOR, ((JavaElementImpl) constructor).getPsi()); } @Nullable @Override public ClassDescriptor getClass(@NotNull JavaClass javaClass) { - return trace.get(CLASS, javaClass.getPsi()); + return trace.get(CLASS, ((JavaClassImpl) javaClass).getPsi()); } @Override public void recordMethod(@NotNull JavaMethod method, @NotNull SimpleFunctionDescriptor descriptor) { - BindingContextUtils.recordFunctionDeclarationToDescriptor(trace, method.getPsi(), descriptor); + BindingContextUtils.recordFunctionDeclarationToDescriptor(trace, ((JavaMethodImpl) method).getPsi(), descriptor); } @Override public void recordConstructor(@NotNull JavaElement element, @NotNull ConstructorDescriptor descriptor) { - trace.record(CONSTRUCTOR, element.getPsi(), descriptor); + trace.record(CONSTRUCTOR, ((JavaElementImpl) element).getPsi(), descriptor); } @Override public void recordField(@NotNull JavaField field, @NotNull PropertyDescriptor descriptor) { - trace.record(VARIABLE, field.getPsi(), descriptor); + PsiField psiField = ((JavaFieldImpl) field).getPsi(); + trace.record(VARIABLE, psiField, descriptor); if (AnnotationUtils.isPropertyAcceptableAsAnnotationParameter(descriptor)) { - PsiExpression initializer = field.getPsi().getInitializer(); + PsiExpression initializer = psiField.getInitializer(); if (initializer instanceof PsiLiteralExpression) { CompileTimeConstant constant = JavaAnnotationArgumentResolver .resolveCompileTimeConstantValue(((PsiLiteralExpression) initializer).getValue(), descriptor.getType()); @@ -108,7 +114,7 @@ public class TraceBasedJavaResolverCache implements JavaResolverCache { @Override public void recordClass(@NotNull JavaClass javaClass, @NotNull ClassDescriptor descriptor) { - trace.record(CLASS, javaClass.getPsi(), descriptor); + trace.record(CLASS, ((JavaClassImpl) javaClass).getPsi(), descriptor); } @Override @@ -123,6 +129,6 @@ public class TraceBasedJavaResolverCache implements JavaResolverCache { @Override public void recordPackage(@NotNull JavaElement element, @NotNull NamespaceDescriptor descriptor) { - trace.record(NAMESPACE, element.getPsi(), descriptor); + trace.record(NAMESPACE, ((JavaElementImpl) element).getPsi(), descriptor); } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotation.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotation.java index f9d8693d8e8..e5444f7e99e 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotation.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotation.java @@ -16,7 +16,6 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiAnnotation; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.resolve.name.FqName; @@ -25,10 +24,6 @@ import org.jetbrains.jet.lang.resolve.name.Name; import java.util.Collection; public interface JavaAnnotation extends JavaElement { - @NotNull - @Override - PsiAnnotation getPsi(); - @Nullable JavaAnnotationArgument findArgument(@NotNull Name name); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotationArgument.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotationArgument.java index 41d42af95d2..c339bc613a5 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotationArgument.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotationArgument.java @@ -16,16 +16,10 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiAnnotationMemberValue; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.resolve.name.Name; public interface JavaAnnotationArgument extends JavaElement { - @NotNull - @Override - PsiAnnotationMemberValue getPsi(); - @Nullable Name getName(); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotationAsAnnotationArgument.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotationAsAnnotationArgument.java index 520e1ebbb7e..41d3a3c1500 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotationAsAnnotationArgument.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotationAsAnnotationArgument.java @@ -16,14 +16,9 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiAnnotation; import org.jetbrains.annotations.NotNull; public interface JavaAnnotationAsAnnotationArgument extends JavaAnnotationArgument { - @NotNull - @Override - PsiAnnotation getPsi(); - @NotNull JavaAnnotation getAnnotation(); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotationOwner.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotationOwner.java index 183afb44bce..8bd27d2fcc1 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotationOwner.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaAnnotationOwner.java @@ -16,7 +16,6 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiModifierListOwner; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.resolve.name.FqName; @@ -24,10 +23,6 @@ import org.jetbrains.jet.lang.resolve.name.FqName; import java.util.Collection; public interface JavaAnnotationOwner extends JavaElement { - @NotNull - @Override - PsiModifierListOwner getPsi(); - @NotNull Collection getAnnotations(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaArrayAnnotationArgument.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaArrayAnnotationArgument.java index c4f9eac18bb..e64f30fe521 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaArrayAnnotationArgument.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaArrayAnnotationArgument.java @@ -16,16 +16,11 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiArrayInitializerMemberValue; import org.jetbrains.annotations.NotNull; import java.util.Collection; public interface JavaArrayAnnotationArgument extends JavaAnnotationArgument { - @NotNull - @Override - PsiArrayInitializerMemberValue getPsi(); - @NotNull Collection getElements(); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaArrayType.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaArrayType.java index ffafca8e1d8..42b4ab16b79 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaArrayType.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaArrayType.java @@ -16,14 +16,9 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiArrayType; import org.jetbrains.annotations.NotNull; public interface JavaArrayType extends JavaType { - @NotNull - @Override - PsiArrayType getPsi(); - @NotNull JavaType getComponentType(); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClass.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClass.java index 4ddc8c563da..63c2e77886e 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClass.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClass.java @@ -16,7 +16,6 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiClass; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.ClassKind; @@ -27,10 +26,6 @@ import java.util.Collection; public interface JavaClass extends JavaClassifier, JavaNamedElement, JavaTypeParameterListOwner, JavaModifierListOwner, JavaAnnotationOwner { - @NotNull - @Override - PsiClass getPsi(); - @NotNull Collection getInnerClasses(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClassifier.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClassifier.java index 9c286e5f3b9..9cf47754140 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClassifier.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClassifier.java @@ -16,11 +16,5 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiClass; -import org.jetbrains.annotations.NotNull; - public interface JavaClassifier extends JavaElement { - @NotNull - @Override - PsiClass getPsi(); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClassifierType.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClassifierType.java index ba1c4c31f2b..87029d24a51 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClassifierType.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaClassifierType.java @@ -16,17 +16,12 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiClassType; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Collection; public interface JavaClassifierType extends JavaType { - @NotNull - @Override - PsiClassType getPsi(); - @Nullable JavaClassifier getClassifier(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaElement.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaElement.java index 7c9eda8fa56..8c55e8d0225 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaElement.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaElement.java @@ -16,10 +16,5 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiElement; -import org.jetbrains.annotations.NotNull; - public interface JavaElement { - @NotNull - PsiElement getPsi(); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaField.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaField.java index cdf9c603026..ad60d7e9d67 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaField.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaField.java @@ -16,14 +16,9 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiField; import org.jetbrains.annotations.NotNull; public interface JavaField extends JavaMember { - @NotNull - @Override - PsiField getPsi(); - boolean isEnumEntry(); @NotNull diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaLiteralAnnotationArgument.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaLiteralAnnotationArgument.java index c07b0cf6a86..6ab89787318 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaLiteralAnnotationArgument.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaLiteralAnnotationArgument.java @@ -16,15 +16,9 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiLiteralExpression; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public interface JavaLiteralAnnotationArgument extends JavaAnnotationArgument { - @NotNull - @Override - PsiLiteralExpression getPsi(); - @Nullable Object getValue(); } 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 76ad937d8bb..66097b0121f 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 @@ -16,15 +16,9 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiMember; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; public interface JavaMember extends JavaModifierListOwner, JavaAnnotationOwner, JavaNamedElement { - @NotNull - @Override - PsiMember getPsi(); - @NotNull JavaClass getContainingClass(); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaMethod.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaMethod.java index 6617f79c364..3d90f56e669 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaMethod.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaMethod.java @@ -16,17 +16,12 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiMethod; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Collection; public interface JavaMethod extends JavaMember, JavaTypeParameterListOwner { - @NotNull - @Override - PsiMethod getPsi(); - @NotNull Collection getValueParameters(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaModifierListOwner.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaModifierListOwner.java index 9cea32cbd8d..c02a71f41a9 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaModifierListOwner.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaModifierListOwner.java @@ -16,15 +16,10 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiModifierListOwner; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.Visibility; public interface JavaModifierListOwner extends JavaElement { - @NotNull - @Override - PsiModifierListOwner getPsi(); - boolean isAbstract(); boolean isStatic(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPackage.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPackage.java index f60caf83aba..26c3a9cdcb2 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPackage.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPackage.java @@ -16,17 +16,12 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiPackage; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.resolve.name.FqName; import java.util.Collection; public interface JavaPackage extends JavaElement { - @NotNull - @Override - PsiPackage getPsi(); - @NotNull Collection getClasses(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPrimitiveType.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPrimitiveType.java index 251484e631e..3d94d09b437 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPrimitiveType.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPrimitiveType.java @@ -16,14 +16,9 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiPrimitiveType; import org.jetbrains.annotations.NotNull; public interface JavaPrimitiveType extends JavaType { - @NotNull - @Override - PsiPrimitiveType getPsi(); - @NotNull String getCanonicalText(); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaReferenceAnnotationArgument.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaReferenceAnnotationArgument.java index 5513a02afe6..c8ad41e9a0b 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaReferenceAnnotationArgument.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaReferenceAnnotationArgument.java @@ -16,15 +16,9 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiReferenceExpression; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public interface JavaReferenceAnnotationArgument extends JavaAnnotationArgument { - @NotNull - @Override - PsiReferenceExpression getPsi(); - @Nullable JavaElement resolve(); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaType.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaType.java index d875df77465..cae4313b16a 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaType.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaType.java @@ -16,10 +16,5 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiType; -import org.jetbrains.annotations.NotNull; - public interface JavaType { - @NotNull - PsiType getPsi(); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaTypeParameter.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaTypeParameter.java index 687f91be5fa..e4ff03b1248 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaTypeParameter.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaTypeParameter.java @@ -16,17 +16,12 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiTypeParameter; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Collection; public interface JavaTypeParameter extends JavaClassifier, JavaNamedElement { - @NotNull - @Override - PsiTypeParameter getPsi(); - int getIndex(); @NotNull diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaValueParameter.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaValueParameter.java index 1e456c3ed1b..7d0a3b35107 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaValueParameter.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaValueParameter.java @@ -16,16 +16,11 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiParameter; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.resolve.name.Name; public interface JavaValueParameter extends JavaAnnotationOwner { - @NotNull - @Override - PsiParameter getPsi(); - @Nullable Name getName(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaWildcardType.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaWildcardType.java index 5c5945cf8ab..57c2ec7f545 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaWildcardType.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaWildcardType.java @@ -16,15 +16,10 @@ package org.jetbrains.jet.lang.resolve.java.structure; -import com.intellij.psi.PsiWildcardType; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public interface JavaWildcardType extends JavaType { - @NotNull - @Override - PsiWildcardType getPsi(); - @Nullable JavaType getBound(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaAnnotationOwnerImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaAnnotationOwnerImpl.java new file mode 100644 index 00000000000..09c2d0ee55a --- /dev/null +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaAnnotationOwnerImpl.java @@ -0,0 +1,26 @@ +/* + * Copyright 2010-2013 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.jet.lang.resolve.java.structure.impl; + +import com.intellij.psi.PsiModifierListOwner; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.resolve.java.structure.JavaAnnotationOwner; + +public interface JavaAnnotationOwnerImpl extends JavaAnnotationOwner { + @NotNull + PsiModifierListOwner getPsi(); +} diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaClassImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaClassImpl.java index 85dc94ec883..19dcdab7074 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaClassImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaClassImpl.java @@ -35,7 +35,7 @@ import java.util.Collection; import static org.jetbrains.jet.lang.resolve.java.structure.impl.JavaElementCollectionFromPsiArrayUtil.*; -public class JavaClassImpl extends JavaClassifierImpl implements JavaClass { +public class JavaClassImpl extends JavaClassifierImpl implements JavaClass, JavaAnnotationOwnerImpl, JavaModifierListOwnerImpl { public JavaClassImpl(@NotNull PsiClass psiClass) { super(psiClass); assert !(psiClass instanceof PsiTypeParameter) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementFactoryImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementFactoryImpl.java index bbb198ac853..2318876e999 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementFactoryImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementFactoryImpl.java @@ -25,6 +25,6 @@ public class JavaElementFactoryImpl extends JavaElementFactory { @NotNull @Override public JavaArrayType createArrayType(@NotNull JavaType elementType) { - return new JavaArrayTypeImpl(elementType.getPsi().createArrayType()); + return new JavaArrayTypeImpl(((JavaTypeImpl) elementType).getPsi().createArrayType()); } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementImpl.java index 777b4807a58..9ca4c32d338 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementImpl.java @@ -28,7 +28,6 @@ public abstract class JavaElementImpl implements JavaElement { } @NotNull - @Override public PsiElement getPsi() { return psiElement; } @@ -40,7 +39,7 @@ public abstract class JavaElementImpl implements JavaElement { @Override public boolean equals(Object obj) { - return obj instanceof JavaElement && getPsi().equals(((JavaElement) obj).getPsi()); + return obj instanceof JavaElementImpl && getPsi().equals(((JavaElementImpl) obj).getPsi()); } @Override diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementUtil.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementUtil.java index f74bdf14cd6..46c4334fc1f 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementUtil.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementUtil.java @@ -19,14 +19,13 @@ package org.jetbrains.jet.lang.resolve.java.structure.impl; import com.intellij.psi.PsiAnnotation; import com.intellij.psi.PsiModifier; import com.intellij.psi.PsiModifierList; +import com.intellij.psi.PsiModifierListOwner; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.Visibilities; import org.jetbrains.jet.lang.descriptors.Visibility; import org.jetbrains.jet.lang.resolve.java.JavaVisibilities; import org.jetbrains.jet.lang.resolve.java.structure.JavaAnnotation; -import org.jetbrains.jet.lang.resolve.java.structure.JavaAnnotationOwner; -import org.jetbrains.jet.lang.resolve.java.structure.JavaModifierListOwner; import org.jetbrains.jet.lang.resolve.name.FqName; import java.util.Collection; @@ -38,34 +37,35 @@ import static org.jetbrains.jet.lang.resolve.java.structure.impl.JavaElementColl private JavaElementUtil() { } - public static boolean isAbstract(@NotNull JavaModifierListOwner owner) { + public static boolean isAbstract(@NotNull JavaModifierListOwnerImpl owner) { return owner.getPsi().hasModifierProperty(PsiModifier.ABSTRACT); } - public static boolean isStatic(@NotNull JavaModifierListOwner owner) { + public static boolean isStatic(@NotNull JavaModifierListOwnerImpl owner) { return owner.getPsi().hasModifierProperty(PsiModifier.STATIC); } - public static boolean isFinal(@NotNull JavaModifierListOwner owner) { + public static boolean isFinal(@NotNull JavaModifierListOwnerImpl owner) { return owner.getPsi().hasModifierProperty(PsiModifier.FINAL); } @NotNull - public static Visibility getVisibility(@NotNull JavaModifierListOwner owner) { - if (owner.getPsi().hasModifierProperty(PsiModifier.PUBLIC)) { + public static Visibility getVisibility(@NotNull JavaModifierListOwnerImpl owner) { + PsiModifierListOwner psiOwner = owner.getPsi(); + if (psiOwner.hasModifierProperty(PsiModifier.PUBLIC)) { return Visibilities.PUBLIC; } - if (owner.getPsi().hasModifierProperty(PsiModifier.PRIVATE)) { + if (psiOwner.hasModifierProperty(PsiModifier.PRIVATE)) { return Visibilities.PRIVATE; } - if (owner.getPsi().hasModifierProperty(PsiModifier.PROTECTED)) { + if (psiOwner.hasModifierProperty(PsiModifier.PROTECTED)) { return owner.isStatic() ? JavaVisibilities.PROTECTED_STATIC_VISIBILITY : JavaVisibilities.PROTECTED_AND_PACKAGE; } return JavaVisibilities.PACKAGE_VISIBILITY; } @NotNull - public static Collection getAnnotations(@NotNull JavaAnnotationOwner owner) { + public static Collection getAnnotations(@NotNull JavaAnnotationOwnerImpl owner) { PsiModifierList modifierList = owner.getPsi().getModifierList(); if (modifierList != null) { return annotations(modifierList.getAnnotations()); @@ -74,7 +74,7 @@ import static org.jetbrains.jet.lang.resolve.java.structure.impl.JavaElementColl } @Nullable - public static JavaAnnotation findAnnotation(@NotNull JavaAnnotationOwner owner, @NotNull FqName fqName) { + public static JavaAnnotation findAnnotation(@NotNull JavaAnnotationOwnerImpl owner, @NotNull FqName fqName) { PsiModifierList modifierList = owner.getPsi().getModifierList(); if (modifierList != null) { PsiAnnotation psiAnnotation = modifierList.findAnnotation(fqName.asString()); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaMemberImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaMemberImpl.java index 75cb2c7ce38..948b4b5cf1c 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaMemberImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaMemberImpl.java @@ -29,7 +29,7 @@ import org.jetbrains.jet.lang.resolve.name.Name; import java.util.Collection; -public abstract class JavaMemberImpl extends JavaElementImpl implements JavaMember { +public abstract class JavaMemberImpl extends JavaElementImpl implements JavaMember, JavaAnnotationOwnerImpl, JavaModifierListOwnerImpl { protected JavaMemberImpl(@NotNull PsiMember psiMember) { super(psiMember); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaModifierListOwnerImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaModifierListOwnerImpl.java new file mode 100644 index 00000000000..dc5144312e3 --- /dev/null +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaModifierListOwnerImpl.java @@ -0,0 +1,26 @@ +/* + * Copyright 2010-2013 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.jet.lang.resolve.java.structure.impl; + +import com.intellij.psi.PsiModifierListOwner; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.resolve.java.structure.JavaModifierListOwner; + +public interface JavaModifierListOwnerImpl extends JavaModifierListOwner { + @NotNull + PsiModifierListOwner getPsi(); +} diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaSignatureFormatterImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaSignatureFormatterImpl.java index 544da8d5106..6e58096a306 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaSignatureFormatterImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaSignatureFormatterImpl.java @@ -28,14 +28,14 @@ public class JavaSignatureFormatterImpl extends JavaSignatureFormatter { @NotNull @Override public String formatMethod(@NotNull JavaMethod method) { - return PsiFormatUtil.formatMethod(method.getPsi(), PsiSubstitutor.EMPTY, SHOW_NAME | SHOW_PARAMETERS, + return PsiFormatUtil.formatMethod(((JavaMethodImpl) method).getPsi(), PsiSubstitutor.EMPTY, SHOW_NAME | SHOW_PARAMETERS, SHOW_TYPE | SHOW_FQ_CLASS_NAMES); } @NotNull @Override public String getExternalName(@NotNull JavaMethod method) { - String result = PsiFormatUtil.getExternalName(method.getPsi()); + String result = PsiFormatUtil.getExternalName(((JavaMethodImpl) method).getPsi()); return result == null ? "null" : result; } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaTypeImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaTypeImpl.java index a9249696f65..ac64a1dfb6f 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaTypeImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaTypeImpl.java @@ -28,7 +28,6 @@ public abstract class JavaTypeImpl implements JavaType { this.psiType = psiType; } - @Override @NotNull public PsiType getPsi() { return psiType; @@ -76,7 +75,7 @@ public abstract class JavaTypeImpl implements JavaType { @Override public boolean equals(Object obj) { - return obj instanceof JavaTypeImpl && getPsi().equals(((JavaType) obj).getPsi()); + return obj instanceof JavaTypeImpl && getPsi().equals(((JavaTypeImpl) obj).getPsi()); } @Override diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaTypeSubstitutorImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaTypeSubstitutorImpl.java index fe138707ad7..9983a52bcf3 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaTypeSubstitutorImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaTypeSubstitutorImpl.java @@ -46,8 +46,8 @@ public class JavaTypeSubstitutorImpl implements JavaTypeSubstitutor { public static JavaTypeSubstitutor create(@NotNull Map substitutionMap) { Map psiMap = new HashMap(); for (Map.Entry entry : substitutionMap.entrySet()) { - JavaType value = entry.getValue(); - psiMap.put(entry.getKey().getPsi(), value == null ? null : value.getPsi()); + JavaTypeImpl value = ((JavaTypeImpl) entry.getValue()); + psiMap.put(((JavaTypeParameterImpl) entry.getKey()).getPsi(), value == null ? null : value.getPsi()); } PsiSubstitutor psiSubstitutor = PsiSubstitutorImpl.createSubstitutor(psiMap); return new JavaTypeSubstitutorImpl(psiSubstitutor, substitutionMap); @@ -56,13 +56,13 @@ public class JavaTypeSubstitutorImpl implements JavaTypeSubstitutor { @Override @NotNull public JavaType substitute(@NotNull JavaType type) { - return JavaTypeImpl.create(psiSubstitutor.substitute(type.getPsi())); + return JavaTypeImpl.create(psiSubstitutor.substitute(((JavaTypeImpl) type).getPsi())); } @Override @Nullable public JavaType substitute(@NotNull JavaTypeParameter typeParameter) { - PsiType psiType = psiSubstitutor.substitute(typeParameter.getPsi()); + PsiType psiType = psiSubstitutor.substitute(((JavaTypeParameterImpl) typeParameter).getPsi()); return psiType == null ? null : JavaTypeImpl.create(psiType); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaValueParameterImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaValueParameterImpl.java index 6e85b5c5654..92119258238 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaValueParameterImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaValueParameterImpl.java @@ -27,7 +27,7 @@ import org.jetbrains.jet.lang.resolve.name.Name; import java.util.Collection; -public class JavaValueParameterImpl extends JavaElementImpl implements JavaValueParameter { +public class JavaValueParameterImpl extends JavaElementImpl implements JavaValueParameter, JavaAnnotationOwnerImpl { public JavaValueParameterImpl(@NotNull PsiParameter psiParameter) { super(psiParameter); }