Extract util methods from JavaDescriptorResolver to the new class DescriptorResolverUtils
This commit is contained in:
+123
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
* Copyright 2010-2012 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;
|
||||
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiModifier;
|
||||
import com.intellij.psi.PsiModifierListOwner;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.*;
|
||||
import org.jetbrains.jet.lang.resolve.java.kt.PsiAnnotationWithFlags;
|
||||
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiClassWrapper;
|
||||
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMemberWrapper;
|
||||
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
import org.jetbrains.jet.lang.types.JetType;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Pavel Talanov
|
||||
*/
|
||||
public final class DescriptorResolverUtils {
|
||||
private DescriptorResolverUtils() {
|
||||
}
|
||||
|
||||
public static boolean isKotlinClass(@NotNull PsiClass psiClass) {
|
||||
return new PsiClassWrapper(psiClass).getJetClass().isDefined() || psiClass.getName().equals(JvmAbi.PACKAGE_CLASS);
|
||||
}
|
||||
|
||||
public static boolean isInnerEnum(@NotNull PsiClass innerClass, DeclarationDescriptor owner) {
|
||||
if (!innerClass.isEnum()) return false;
|
||||
if (!(owner instanceof ClassDescriptor)) return false;
|
||||
|
||||
ClassKind kind = ((ClassDescriptor) owner).getKind();
|
||||
return kind == ClassKind.CLASS || kind == ClassKind.TRAIT || kind == ClassKind.ENUM_CLASS;
|
||||
}
|
||||
|
||||
public static Collection<JetType> getSupertypes(JavaDescriptorResolveData.ResolverScopeData scope) {
|
||||
if (scope instanceof JavaDescriptorResolveData.ResolverClassData) {
|
||||
return ((JavaDescriptorResolveData.ResolverClassData) scope).getClassDescriptor().getSupertypes();
|
||||
}
|
||||
else if (scope instanceof JavaDescriptorResolveData.ResolverNamespaceData) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
else {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static Modality resolveModality(PsiMemberWrapper memberWrapper, boolean isFinal) {
|
||||
if (memberWrapper instanceof PsiMethodWrapper) {
|
||||
PsiMethodWrapper method = (PsiMethodWrapper) memberWrapper;
|
||||
if (method.getJetMethod().hasForceOpenFlag()) {
|
||||
return Modality.OPEN;
|
||||
}
|
||||
if (method.getJetMethod().hasForceFinalFlag()) {
|
||||
return Modality.FINAL;
|
||||
}
|
||||
}
|
||||
|
||||
return Modality.convertFromFlags(memberWrapper.isAbstract(), !isFinal);
|
||||
}
|
||||
|
||||
public static Visibility resolveVisibility(
|
||||
PsiModifierListOwner modifierListOwner,
|
||||
@Nullable PsiAnnotationWithFlags annotation
|
||||
) {
|
||||
if (annotation != null) {
|
||||
if (annotation.hasPrivateFlag()) {
|
||||
return Visibilities.PRIVATE;
|
||||
}
|
||||
else if (annotation.hasInternalFlag()) {
|
||||
return Visibilities.INTERNAL;
|
||||
}
|
||||
}
|
||||
return modifierListOwner.hasModifierProperty(PsiModifier.PUBLIC) ? Visibilities.PUBLIC :
|
||||
(modifierListOwner.hasModifierProperty(PsiModifier.PRIVATE) ? Visibilities.PRIVATE :
|
||||
(modifierListOwner.hasModifierProperty(PsiModifier.PROTECTED) ? Visibilities.PROTECTED :
|
||||
//Visibilities.PUBLIC));
|
||||
JavaDescriptorResolver.PACKAGE_VISIBILITY));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ValueParameterDescriptor getValueParameterDescriptorForAnnotationParameter(
|
||||
Name argumentName,
|
||||
ClassDescriptor classDescriptor
|
||||
) {
|
||||
Collection<ConstructorDescriptor> constructors = classDescriptor.getConstructors();
|
||||
assert constructors.size() == 1 : "Annotation class descriptor must have only one constructor";
|
||||
List<ValueParameterDescriptor> valueParameters = constructors.iterator().next().getValueParameters();
|
||||
|
||||
for (ValueParameterDescriptor parameter : valueParameters) {
|
||||
Name parameterName = parameter.getName();
|
||||
if (parameterName.equals(argumentName)) {
|
||||
return parameter;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void getResolverScopeData(@NotNull JavaDescriptorResolveData.ResolverScopeData scopeData) {
|
||||
if (scopeData.getNamedMembersMap() == null) {
|
||||
scopeData.setNamedMembersMap(JavaDescriptorResolverHelper.getNamedMembers(scopeData));
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -87,7 +87,7 @@ public class JavaDescriptorResolveData {
|
||||
}
|
||||
|
||||
this.staticMembers = staticMembers;
|
||||
this.kotlin = psiClass != null && JavaDescriptorResolver.isKotlinClass(psiClass);
|
||||
this.kotlin = psiClass != null && DescriptorResolverUtils.isKotlinClass(psiClass);
|
||||
classOrNamespaceDescriptor = descriptor;
|
||||
|
||||
if (fqName != null && fqName.lastSegmentIs(Name.identifier(JvmAbi.PACKAGE_CLASS)) && psiClass != null && kotlin) {
|
||||
|
||||
+2
-88
@@ -21,7 +21,6 @@ import com.google.common.collect.Sets;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiAnnotation;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiModifier;
|
||||
import com.intellij.psi.PsiModifierListOwner;
|
||||
import gnu.trove.THashMap;
|
||||
import gnu.trove.TObjectHashingStrategy;
|
||||
@@ -34,12 +33,8 @@ import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolveData.ResolverClassData;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolveData.ResolverNamespaceData;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolveData.ResolverScopeData;
|
||||
import org.jetbrains.jet.lang.resolve.java.kt.PsiAnnotationWithFlags;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.*;
|
||||
import org.jetbrains.jet.lang.resolve.java.scope.JavaPackageScope;
|
||||
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiClassWrapper;
|
||||
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMemberWrapper;
|
||||
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper;
|
||||
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiParameterWrapper;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqNameBase;
|
||||
@@ -219,18 +214,6 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean isKotlinClass(@NotNull PsiClass psiClass) {
|
||||
return new PsiClassWrapper(psiClass).getJetClass().isDefined() || psiClass.getName().equals(JvmAbi.PACKAGE_CLASS);
|
||||
}
|
||||
|
||||
public static boolean isInnerEnum(@NotNull PsiClass innerClass, DeclarationDescriptor owner) {
|
||||
if (!innerClass.isEnum()) return false;
|
||||
if (!(owner instanceof ClassDescriptor)) return false;
|
||||
|
||||
ClassKind kind = ((ClassDescriptor) owner).getKind();
|
||||
return kind == ClassKind.CLASS || kind == ClassKind.TRAIT || kind == ClassKind.ENUM_CLASS;
|
||||
}
|
||||
|
||||
static boolean isJavaLangObject(JetType type) {
|
||||
ClassifierDescriptor classifierDescriptor = type.getConstructor().getDeclarationDescriptor();
|
||||
return classifierDescriptor instanceof ClassDescriptor &&
|
||||
@@ -276,7 +259,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
||||
public Set<VariableDescriptor> resolveFieldGroupByName(@NotNull Name fieldName, @NotNull ResolverScopeData scopeData) {
|
||||
|
||||
PsiClass psiClass = scopeData.getPsiClass();
|
||||
getResolverScopeData(scopeData);
|
||||
DescriptorResolverUtils.getResolverScopeData(scopeData);
|
||||
|
||||
NamedMembers namedMembers = scopeData.getNamedMembersMap().get(fieldName);
|
||||
if (namedMembers == null) {
|
||||
@@ -294,7 +277,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
||||
@NotNull
|
||||
public Set<VariableDescriptor> resolveFieldGroup(@NotNull ResolverScopeData scopeData) {
|
||||
|
||||
getResolverScopeData(scopeData);
|
||||
DescriptorResolverUtils.getResolverScopeData(scopeData);
|
||||
final PsiClass psiClass = scopeData.getPsiClass();
|
||||
assert psiClass != null;
|
||||
|
||||
@@ -313,12 +296,6 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
||||
return descriptors;
|
||||
}
|
||||
|
||||
public static void getResolverScopeData(@NotNull ResolverScopeData scopeData) {
|
||||
if (scopeData.getNamedMembersMap() == null) {
|
||||
scopeData.setNamedMembersMap(JavaDescriptorResolverHelper.getNamedMembers(scopeData));
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Set<FunctionDescriptor> resolveFunctionGroup(@NotNull Name methodName, @NotNull ResolverScopeData scopeData) {
|
||||
return functionResolver.resolveFunctionGroup(methodName, scopeData);
|
||||
@@ -344,73 +321,10 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
||||
return annotationResolver.resolveAnnotation(psiAnnotation, taskList);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ValueParameterDescriptor getValueParameterDescriptorForAnnotationParameter(
|
||||
Name argumentName,
|
||||
ClassDescriptor classDescriptor
|
||||
) {
|
||||
Collection<ConstructorDescriptor> constructors = classDescriptor.getConstructors();
|
||||
assert constructors.size() == 1 : "Annotation class descriptor must have only one constructor";
|
||||
List<ValueParameterDescriptor> valueParameters = constructors.iterator().next().getValueParameters();
|
||||
|
||||
for (ValueParameterDescriptor parameter : valueParameters) {
|
||||
Name parameterName = parameter.getName();
|
||||
if (parameterName.equals(argumentName)) {
|
||||
return parameter;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<FunctionDescriptor> resolveMethods(@NotNull ResolverScopeData scopeData) {
|
||||
return functionResolver.resolveMethods(scopeData);
|
||||
}
|
||||
|
||||
public static Collection<JetType> getSupertypes(ResolverScopeData scope) {
|
||||
if (scope instanceof ResolverClassData) {
|
||||
return ((ResolverClassData) scope).getClassDescriptor().getSupertypes();
|
||||
}
|
||||
else if (scope instanceof ResolverNamespaceData) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
else {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
public static Modality resolveModality(PsiMemberWrapper memberWrapper, boolean isFinal) {
|
||||
if (memberWrapper instanceof PsiMethodWrapper) {
|
||||
PsiMethodWrapper method = (PsiMethodWrapper) memberWrapper;
|
||||
if (method.getJetMethod().hasForceOpenFlag()) {
|
||||
return Modality.OPEN;
|
||||
}
|
||||
if (method.getJetMethod().hasForceFinalFlag()) {
|
||||
return Modality.FINAL;
|
||||
}
|
||||
}
|
||||
|
||||
return Modality.convertFromFlags(memberWrapper.isAbstract(), !isFinal);
|
||||
}
|
||||
|
||||
public static Visibility resolveVisibility(
|
||||
PsiModifierListOwner modifierListOwner,
|
||||
@Nullable PsiAnnotationWithFlags annotation
|
||||
) {
|
||||
if (annotation != null) {
|
||||
if (annotation.hasPrivateFlag()) {
|
||||
return Visibilities.PRIVATE;
|
||||
}
|
||||
else if (annotation.hasInternalFlag()) {
|
||||
return Visibilities.INTERNAL;
|
||||
}
|
||||
}
|
||||
return modifierListOwner.hasModifierProperty(PsiModifier.PUBLIC) ? Visibilities.PUBLIC :
|
||||
(modifierListOwner.hasModifierProperty(PsiModifier.PRIVATE) ? Visibilities.PRIVATE :
|
||||
(modifierListOwner.hasModifierProperty(PsiModifier.PROTECTED) ? Visibilities.PROTECTED :
|
||||
//Visibilities.PUBLIC));
|
||||
PACKAGE_VISIBILITY));
|
||||
}
|
||||
|
||||
public List<ClassDescriptor> resolveInnerClasses(DeclarationDescriptor owner, PsiClass psiClass, boolean staticMembers) {
|
||||
return innerClassResolver.resolveInnerClasses(owner, psiClass, staticMembers);
|
||||
}
|
||||
|
||||
+2
-1
@@ -25,6 +25,7 @@ import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant;
|
||||
import org.jetbrains.jet.lang.resolve.java.DescriptorResolverUtils;
|
||||
import org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
|
||||
@@ -103,7 +104,7 @@ public class AnnotationResolver {
|
||||
.getCompileTimeConstFromExpression(annotationFqName, identifier, value, taskList);
|
||||
if (compileTimeConst != null) {
|
||||
ValueParameterDescriptor valueParameterDescriptor =
|
||||
JavaDescriptorResolver.getValueParameterDescriptorForAnnotationParameter(identifier, clazz);
|
||||
DescriptorResolverUtils.getValueParameterDescriptorForAnnotationParameter(identifier, clazz);
|
||||
if (valueParameterDescriptor != null) {
|
||||
annotation.setValueArgument(valueParameterDescriptor, compileTimeConst);
|
||||
}
|
||||
|
||||
+4
-4
@@ -173,7 +173,7 @@ public class ClassResolver {
|
||||
|
||||
classData.getClassDescriptor().setTypeParameterDescriptors(typeParameters);
|
||||
classData.getClassDescriptor().setSupertypes(supertypes);
|
||||
classData.getClassDescriptor().setVisibility(JavaDescriptorResolver.resolveVisibility(psiClass, jetClassAnnotation));
|
||||
classData.getClassDescriptor().setVisibility(DescriptorResolverUtils.resolveVisibility(psiClass, jetClassAnnotation));
|
||||
Modality modality;
|
||||
if (classData.getClassDescriptor().getKind() == ClassKind.ANNOTATION_CLASS) {
|
||||
modality = Modality.FINAL;
|
||||
@@ -218,13 +218,13 @@ public class ClassResolver {
|
||||
return createClassObjectDescriptorForEnum(containing, psiClass);
|
||||
}
|
||||
|
||||
if (!JavaDescriptorResolver.isKotlinClass(psiClass)) {
|
||||
if (!DescriptorResolverUtils.isKotlinClass(psiClass)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// If there's at least one inner enum, we need to create a class object (to put this enum into)
|
||||
for (PsiClass innerClass : psiClass.getInnerClasses()) {
|
||||
if (JavaDescriptorResolver.isInnerEnum(innerClass, containing)) {
|
||||
if (DescriptorResolverUtils.isInnerEnum(innerClass, containing)) {
|
||||
return createSyntheticClassObject(containing, psiClass);
|
||||
}
|
||||
}
|
||||
@@ -415,7 +415,7 @@ public class ClassResolver {
|
||||
throw new IllegalStateException(
|
||||
"PsiClass not found by name " + containerFqName + ", required to be container declaration of " + fqName);
|
||||
}
|
||||
if (JavaDescriptorResolver.isInnerEnum(psiClass, clazz) && JavaDescriptorResolver.isKotlinClass(psiClass)) {
|
||||
if (DescriptorResolverUtils.isInnerEnum(psiClass, clazz) && DescriptorResolverUtils.isKotlinClass(psiClass)) {
|
||||
ClassDescriptor classObjectDescriptor = clazz.getClassObjectDescriptor();
|
||||
if (classObjectDescriptor == null) {
|
||||
throw new IllegalStateException("Class object for a class with inner enum should've been created earlier: " + clazz);
|
||||
|
||||
+2
-1
@@ -26,6 +26,7 @@ import org.jetbrains.jet.lang.descriptors.VariableDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.constants.*;
|
||||
import org.jetbrains.jet.lang.resolve.constants.StringValue;
|
||||
import org.jetbrains.jet.lang.resolve.java.DescriptorResolverUtils;
|
||||
import org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
@@ -91,7 +92,7 @@ public class CompileTimeConstResolver {
|
||||
javaDescriptorResolver.getClassResolver().resolveClass(annotationFqName, DescriptorSearchRule.INCLUDE_KOTLIN, taskList);
|
||||
|
||||
ValueParameterDescriptor valueParameterDescriptor =
|
||||
JavaDescriptorResolver.getValueParameterDescriptorForAnnotationParameter(valueName, classDescriptor);
|
||||
DescriptorResolverUtils.getValueParameterDescriptorForAnnotationParameter(valueName, classDescriptor);
|
||||
if (valueParameterDescriptor == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
+2
-5
@@ -24,10 +24,7 @@ import org.jetbrains.jet.lang.descriptors.*;
|
||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolveData;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.TypeVariableResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.TypeVariableResolvers;
|
||||
import org.jetbrains.jet.lang.resolve.java.*;
|
||||
import org.jetbrains.jet.lang.resolve.java.descriptor.ClassDescriptorFromJvmBytecode;
|
||||
import org.jetbrains.jet.lang.resolve.java.kotlinSignature.AlternativeMethodSignatureData;
|
||||
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper;
|
||||
@@ -189,7 +186,7 @@ public class ConstructorResolver {
|
||||
|
||||
constructorDescriptor.initialize(classData.getClassDescriptor().getTypeConstructor().getParameters(),
|
||||
valueParameterDescriptors.getDescriptors(),
|
||||
JavaDescriptorResolver.resolveVisibility(psiConstructor, constructor.getJetConstructor()),
|
||||
DescriptorResolverUtils.resolveVisibility(psiConstructor, constructor.getJetConstructor()),
|
||||
aStatic);
|
||||
javaDescriptorResolver.getTrace().record(BindingContext.CONSTRUCTOR, psiConstructor, constructorDescriptor);
|
||||
return constructorDescriptor;
|
||||
|
||||
+6
-6
@@ -53,7 +53,7 @@ public class FunctionResolver {
|
||||
@NotNull JavaDescriptorResolveData.ResolverScopeData scopeData
|
||||
) {
|
||||
|
||||
JavaDescriptorResolver.getResolverScopeData(scopeData);
|
||||
DescriptorResolverUtils.getResolverScopeData(scopeData);
|
||||
|
||||
PsiType returnPsiType = method.getReturnType();
|
||||
if (returnPsiType == null) {
|
||||
@@ -121,8 +121,8 @@ public class FunctionResolver {
|
||||
methodTypeParameters,
|
||||
valueParameterDescriptors.getDescriptors(),
|
||||
returnType,
|
||||
JavaDescriptorResolver.resolveModality(method, method.isFinal()),
|
||||
JavaDescriptorResolver.resolveVisibility(psiMethod, method.getJetMethod()),
|
||||
DescriptorResolverUtils.resolveModality(method, method.isFinal()),
|
||||
DescriptorResolverUtils.resolveVisibility(psiMethod, method.getJetMethod()),
|
||||
/*isInline = */ false
|
||||
);
|
||||
|
||||
@@ -191,7 +191,7 @@ public class FunctionResolver {
|
||||
}
|
||||
|
||||
public Set<FunctionDescriptor> resolveFunctionGroup(Name methodName, JavaDescriptorResolveData.ResolverScopeData scopeData) {
|
||||
JavaDescriptorResolver.getResolverScopeData(scopeData);
|
||||
DescriptorResolverUtils.getResolverScopeData(scopeData);
|
||||
|
||||
Map<Name, NamedMembers> namedMembersMap = scopeData.getNamedMembersMap();
|
||||
|
||||
@@ -239,7 +239,7 @@ public class FunctionResolver {
|
||||
Name methodName
|
||||
) {
|
||||
Set<SimpleFunctionDescriptor> r = Sets.newLinkedHashSet();
|
||||
for (JetType supertype : JavaDescriptorResolver.getSupertypes(scopeData)) {
|
||||
for (JetType supertype : DescriptorResolverUtils.getSupertypes(scopeData)) {
|
||||
for (FunctionDescriptor function : supertype.getMemberScope().getFunctions(methodName)) {
|
||||
r.add((SimpleFunctionDescriptor) function);
|
||||
}
|
||||
@@ -249,7 +249,7 @@ public class FunctionResolver {
|
||||
|
||||
public List<FunctionDescriptor> resolveMethods(@NotNull JavaDescriptorResolveData.ResolverScopeData scopeData) {
|
||||
|
||||
JavaDescriptorResolver.getResolverScopeData(scopeData);
|
||||
DescriptorResolverUtils.getResolverScopeData(scopeData);
|
||||
|
||||
List<FunctionDescriptor> functions = new ArrayList<FunctionDescriptor>();
|
||||
|
||||
|
||||
+3
-2
@@ -22,6 +22,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.java.DescriptorResolverUtils;
|
||||
import org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
|
||||
@@ -52,7 +53,7 @@ public class InnerClassResolver {
|
||||
if (innerPsiClass.getName().equals(JvmAbi.CLASS_OBJECT_CLASS_NAME)) {
|
||||
continue;
|
||||
}
|
||||
if (JavaDescriptorResolver.isInnerEnum(innerPsiClass, owner)) {
|
||||
if (DescriptorResolverUtils.isInnerEnum(innerPsiClass, owner)) {
|
||||
// Inner enums will be put later into our class object
|
||||
continue;
|
||||
}
|
||||
@@ -71,7 +72,7 @@ public class InnerClassResolver {
|
||||
// If we're a class object, inner enums of our parent need to be put into us
|
||||
DeclarationDescriptor containingDeclaration = owner.getContainingDeclaration();
|
||||
for (PsiClass innerPsiClass : psiClass.getInnerClasses()) {
|
||||
if (JavaDescriptorResolver.isInnerEnum(innerPsiClass, containingDeclaration)) {
|
||||
if (DescriptorResolverUtils.isInnerEnum(innerPsiClass, containingDeclaration)) {
|
||||
ClassDescriptor classDescriptor = resolveInnerClass(innerPsiClass);
|
||||
r.add(classDescriptor);
|
||||
}
|
||||
|
||||
+9
-8
@@ -26,8 +26,8 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolveData.ResolverScopeData;
|
||||
import org.jetbrains.jet.lang.resolve.java.*;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolveData.ResolverScopeData;
|
||||
import org.jetbrains.jet.lang.resolve.java.kotlinSignature.AlternativeFieldSignatureData;
|
||||
import org.jetbrains.jet.lang.resolve.java.kt.DescriptorKindUtils;
|
||||
import org.jetbrains.jet.lang.resolve.java.kt.JetMethodAnnotation;
|
||||
@@ -82,7 +82,7 @@ public final class PropertiesResolver {
|
||||
@NotNull Name propertyName,
|
||||
@NotNull String context
|
||||
) {
|
||||
JavaDescriptorResolver.getResolverScopeData(scopeData);
|
||||
DescriptorResolverUtils.getResolverScopeData(scopeData);
|
||||
|
||||
if (namedMembers.getPropertyDescriptors() != null) {
|
||||
return;
|
||||
@@ -107,12 +107,12 @@ public final class PropertiesResolver {
|
||||
|
||||
PropertyAccessorData characteristicMember = getCharacteristicMember(members);
|
||||
|
||||
Visibility visibility = JavaDescriptorResolver.resolveVisibility(characteristicMember.getMember().getPsiMember(), null);
|
||||
Visibility visibility = DescriptorResolverUtils.resolveVisibility(characteristicMember.getMember().getPsiMember(), null);
|
||||
CallableMemberDescriptor.Kind kind = CallableMemberDescriptor.Kind.DECLARATION;
|
||||
|
||||
if (members.getter != null && members.getter.getMember() instanceof PsiMethodWrapper) {
|
||||
JetMethodAnnotation jetMethod = ((PsiMethodWrapper) members.getter.getMember()).getJetMethod();
|
||||
visibility = JavaDescriptorResolver.resolveVisibility(characteristicMember.getMember().getPsiMember(), jetMethod);
|
||||
visibility = DescriptorResolverUtils.resolveVisibility(characteristicMember.getMember().getPsiMember(), jetMethod);
|
||||
kind = DescriptorKindUtils.flagsToKind(jetMethod.kind());
|
||||
}
|
||||
|
||||
@@ -122,7 +122,8 @@ public final class PropertiesResolver {
|
||||
PropertyDescriptor propertyDescriptor = new PropertyDescriptor(
|
||||
realOwner,
|
||||
javaDescriptorResolver.resolveAnnotations(characteristicMember.getMember().getPsiMember()),
|
||||
JavaDescriptorResolver.resolveModality(characteristicMember.getMember(), isFinal || isEnumEntry || isPropertyForNamedObject),
|
||||
DescriptorResolverUtils
|
||||
.resolveModality(characteristicMember.getMember(), isFinal || isEnumEntry || isPropertyForNamedObject),
|
||||
visibility,
|
||||
isVar,
|
||||
propertyName,
|
||||
@@ -157,9 +158,9 @@ public final class PropertiesResolver {
|
||||
}
|
||||
|
||||
if (members.setter != null) {
|
||||
Visibility setterVisibility = JavaDescriptorResolver.resolveVisibility(members.setter.getMember().getPsiMember(), null);
|
||||
Visibility setterVisibility = DescriptorResolverUtils.resolveVisibility(members.setter.getMember().getPsiMember(), null);
|
||||
if (members.setter.getMember() instanceof PsiMethodWrapper) {
|
||||
setterVisibility = JavaDescriptorResolver.resolveVisibility(
|
||||
setterVisibility = DescriptorResolverUtils.resolveVisibility(
|
||||
members.setter.getMember().getPsiMember(),
|
||||
((PsiMethodWrapper) members.setter.getMember())
|
||||
.getJetMethod());
|
||||
@@ -372,7 +373,7 @@ public final class PropertiesResolver {
|
||||
|
||||
private static Set<PropertyDescriptor> getPropertiesFromSupertypes(ResolverScopeData scopeData, Name propertyName) {
|
||||
Set<PropertyDescriptor> r = new HashSet<PropertyDescriptor>();
|
||||
for (JetType supertype : JavaDescriptorResolver.getSupertypes(scopeData)) {
|
||||
for (JetType supertype : DescriptorResolverUtils.getSupertypes(scopeData)) {
|
||||
for (VariableDescriptor property : supertype.getMemberScope().getProperties(propertyName)) {
|
||||
r.add((PropertyDescriptor) property);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user