JavaDescriptorResolveData.ResolverScopeData fields are private and accessed via getters
This commit is contained in:
+3
-3
@@ -45,7 +45,7 @@ public class JavaClassMembersScope extends JavaClassOrPackageScope {
|
|||||||
@NotNull ResolverScopeData resolverScopeData) {
|
@NotNull ResolverScopeData resolverScopeData) {
|
||||||
super(semanticServices, resolverScopeData);
|
super(semanticServices, resolverScopeData);
|
||||||
|
|
||||||
if (resolverScopeData.psiClass == null) {
|
if (resolverScopeData.getPsiClass() == null) {
|
||||||
throw new IllegalArgumentException("must pass PsiClass here");
|
throw new IllegalArgumentException("must pass PsiClass here");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -79,9 +79,9 @@ public class JavaClassMembersScope extends JavaClassOrPackageScope {
|
|||||||
|
|
||||||
private ClassifierDescriptor doGetClassifierDescriptor(Name name) {
|
private ClassifierDescriptor doGetClassifierDescriptor(Name name) {
|
||||||
// TODO : suboptimal, walk the list only once
|
// TODO : suboptimal, walk the list only once
|
||||||
for (PsiClass innerClass : resolverScopeData.psiClass.getAllInnerClasses()) {
|
for (PsiClass innerClass : resolverScopeData.getPsiClass().getAllInnerClasses()) {
|
||||||
if (name.getName().equals(innerClass.getName())) {
|
if (name.getName().equals(innerClass.getName())) {
|
||||||
if (innerClass.hasModifierProperty(PsiModifier.STATIC) != resolverScopeData.staticMembers) return null;
|
if (innerClass.hasModifierProperty(PsiModifier.STATIC) != resolverScopeData.isStaticMembers()) return null;
|
||||||
ClassDescriptor classDescriptor = semanticServices.getDescriptorResolver()
|
ClassDescriptor classDescriptor = semanticServices.getDescriptorResolver()
|
||||||
.resolveClass(new FqName(innerClass.getQualifiedName()), DescriptorSearchRule.IGNORE_IF_FOUND_IN_KOTLIN);
|
.resolveClass(new FqName(innerClass.getQualifiedName()), DescriptorSearchRule.IGNORE_IF_FOUND_IN_KOTLIN);
|
||||||
if (classDescriptor != null) {
|
if (classDescriptor != null) {
|
||||||
|
|||||||
+9
-9
@@ -53,7 +53,7 @@ public abstract class JavaClassOrPackageScope extends JetScopeImpl {
|
|||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public DeclarationDescriptor getContainingDeclaration() {
|
public DeclarationDescriptor getContainingDeclaration() {
|
||||||
return resolverScopeData.classOrNamespaceDescriptor;
|
return resolverScopeData.getClassOrNamespaceDescriptor();
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -74,7 +74,7 @@ public abstract class JavaClassOrPackageScope extends JetScopeImpl {
|
|||||||
if (allDescriptors == null) {
|
if (allDescriptors == null) {
|
||||||
allDescriptors = Sets.newHashSet();
|
allDescriptors = Sets.newHashSet();
|
||||||
|
|
||||||
if (resolverScopeData.psiClass != null) {
|
if (resolverScopeData.getPsiClass() != null) {
|
||||||
|
|
||||||
ProgressIndicatorProvider.checkCanceled();
|
ProgressIndicatorProvider.checkCanceled();
|
||||||
allDescriptors.addAll(semanticServices.getDescriptorResolver().resolveMethods(resolverScopeData));
|
allDescriptors.addAll(semanticServices.getDescriptorResolver().resolveMethods(resolverScopeData));
|
||||||
@@ -85,21 +85,21 @@ public abstract class JavaClassOrPackageScope extends JetScopeImpl {
|
|||||||
// TODO: Trying to hack the situation when we produce namespace descriptor for java class and still want to see inner classes
|
// TODO: Trying to hack the situation when we produce namespace descriptor for java class and still want to see inner classes
|
||||||
if (getContainingDeclaration() instanceof JavaNamespaceDescriptor) {
|
if (getContainingDeclaration() instanceof JavaNamespaceDescriptor) {
|
||||||
allDescriptors.addAll(semanticServices.getDescriptorResolver().resolveInnerClasses(
|
allDescriptors.addAll(semanticServices.getDescriptorResolver().resolveInnerClasses(
|
||||||
resolverScopeData.classOrNamespaceDescriptor, resolverScopeData.psiClass, false));
|
resolverScopeData.getClassOrNamespaceDescriptor(), resolverScopeData.getPsiClass(), false));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
allDescriptors.addAll(semanticServices.getDescriptorResolver().resolveInnerClasses(
|
allDescriptors.addAll(semanticServices.getDescriptorResolver().resolveInnerClasses(
|
||||||
resolverScopeData.classOrNamespaceDescriptor, resolverScopeData.psiClass,
|
resolverScopeData.getClassOrNamespaceDescriptor(), resolverScopeData.getPsiClass(),
|
||||||
resolverScopeData.staticMembers));
|
resolverScopeData.isStaticMembers()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (resolverScopeData.psiPackage != null) {
|
if (resolverScopeData.getPsiPackage() != null) {
|
||||||
FqName packageFqName = resolverScopeData.fqName;
|
FqName packageFqName = resolverScopeData.getFqName();
|
||||||
boolean isKotlinNamespace = packageFqName != null && semanticServices.getKotlinNamespaceDescriptor(packageFqName) != null;
|
boolean isKotlinNamespace = packageFqName != null && semanticServices.getKotlinNamespaceDescriptor(packageFqName) != null;
|
||||||
final JavaDescriptorResolver descriptorResolver = semanticServices.getDescriptorResolver();
|
final JavaDescriptorResolver descriptorResolver = semanticServices.getDescriptorResolver();
|
||||||
|
|
||||||
for (PsiPackage psiSubPackage : resolverScopeData.psiPackage.getSubPackages()) {
|
for (PsiPackage psiSubPackage : resolverScopeData.getPsiPackage().getSubPackages()) {
|
||||||
NamespaceDescriptor childNs = descriptorResolver.resolveNamespace(
|
NamespaceDescriptor childNs = descriptorResolver.resolveNamespace(
|
||||||
new FqName(psiSubPackage.getQualifiedName()), DescriptorSearchRule.IGNORE_IF_FOUND_IN_KOTLIN);
|
new FqName(psiSubPackage.getQualifiedName()), DescriptorSearchRule.IGNORE_IF_FOUND_IN_KOTLIN);
|
||||||
if (childNs != null) {
|
if (childNs != null) {
|
||||||
@@ -107,7 +107,7 @@ public abstract class JavaClassOrPackageScope extends JetScopeImpl {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (PsiClass psiClass : resolverScopeData.psiPackage.getClasses()) {
|
for (PsiClass psiClass : resolverScopeData.getPsiPackage().getClasses()) {
|
||||||
if (isKotlinNamespace && JvmAbi.PACKAGE_CLASS.equals(psiClass.getName())) {
|
if (isKotlinNamespace && JvmAbi.PACKAGE_CLASS.equals(psiClass.getName())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -327,7 +327,7 @@ public final class JavaDescriptorPropertiesResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isPropertyFinal(ResolverScopeData scopeData, GroupingValue members) {
|
private static boolean isPropertyFinal(ResolverScopeData scopeData, GroupingValue members) {
|
||||||
if (!scopeData.kotlin) {
|
if (!scopeData.isKotlin()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -376,7 +376,7 @@ public final class JavaDescriptorPropertiesResolver {
|
|||||||
@NotNull ResolverScopeData scopeData,
|
@NotNull ResolverScopeData scopeData,
|
||||||
boolean isStatic
|
boolean isStatic
|
||||||
) {
|
) {
|
||||||
final PsiClass psiClass = scopeData.psiClass;
|
final PsiClass psiClass = scopeData.getPsiClass();
|
||||||
assert psiClass != null;
|
assert psiClass != null;
|
||||||
|
|
||||||
boolean isEnum = psiClass.isEnum();
|
boolean isEnum = psiClass.isEnum();
|
||||||
|
|||||||
+33
-6
@@ -35,14 +35,41 @@ import java.util.Map;
|
|||||||
class JavaDescriptorResolveData {
|
class JavaDescriptorResolveData {
|
||||||
static abstract class ResolverScopeData {
|
static abstract class ResolverScopeData {
|
||||||
@Nullable
|
@Nullable
|
||||||
final PsiClass psiClass;
|
public PsiClass getPsiClass() {
|
||||||
|
return psiClass;
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
final PsiPackage psiPackage;
|
public PsiPackage getPsiPackage() {
|
||||||
|
return psiPackage;
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
final FqName fqName;
|
public FqName getFqName() {
|
||||||
final boolean staticMembers;
|
return fqName;
|
||||||
final boolean kotlin;
|
}
|
||||||
final ClassOrNamespaceDescriptor classOrNamespaceDescriptor;
|
|
||||||
|
public boolean isStaticMembers() {
|
||||||
|
return staticMembers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isKotlin() {
|
||||||
|
return kotlin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ClassOrNamespaceDescriptor getClassOrNamespaceDescriptor() {
|
||||||
|
return classOrNamespaceDescriptor;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
private final PsiClass psiClass;
|
||||||
|
@Nullable
|
||||||
|
private final PsiPackage psiPackage;
|
||||||
|
@Nullable
|
||||||
|
private final FqName fqName;
|
||||||
|
private final boolean staticMembers;
|
||||||
|
private final boolean kotlin;
|
||||||
|
private final ClassOrNamespaceDescriptor classOrNamespaceDescriptor;
|
||||||
|
|
||||||
protected ResolverScopeData(@Nullable PsiClass psiClass, @Nullable PsiPackage psiPackage, @Nullable FqName fqName, boolean staticMembers, @NotNull ClassOrNamespaceDescriptor descriptor) {
|
protected ResolverScopeData(@Nullable PsiClass psiClass, @Nullable PsiPackage psiPackage, @Nullable FqName fqName, boolean staticMembers, @NotNull ClassOrNamespaceDescriptor descriptor) {
|
||||||
JavaDescriptorResolver.checkPsiClassIsNotJet(psiClass);
|
JavaDescriptorResolver.checkPsiClassIsNotJet(psiClass);
|
||||||
|
|||||||
+11
-11
@@ -283,7 +283,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
public Collection<ConstructorDescriptor> resolveConstructors(@NotNull ResolverClassData classData) {
|
public Collection<ConstructorDescriptor> resolveConstructors(@NotNull ResolverClassData classData) {
|
||||||
Collection<ConstructorDescriptor> constructors = Lists.newArrayList();
|
Collection<ConstructorDescriptor> constructors = Lists.newArrayList();
|
||||||
|
|
||||||
PsiClass psiClass = classData.psiClass;
|
PsiClass psiClass = classData.getPsiClass();
|
||||||
|
|
||||||
ClassDescriptorFromJvmBytecode containingClass = classData.classDescriptor;
|
ClassDescriptorFromJvmBytecode containingClass = classData.classDescriptor;
|
||||||
assert psiClass != null;
|
assert psiClass != null;
|
||||||
@@ -609,7 +609,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (result.isEmpty()) {
|
if (result.isEmpty()) {
|
||||||
if (classData.kotlin
|
if (classData.isKotlin()
|
||||||
|| OBJECT_FQ_NAME.equalsTo(psiClass.getQualifiedName())
|
|| OBJECT_FQ_NAME.equalsTo(psiClass.getQualifiedName())
|
||||||
// TODO: annotations
|
// TODO: annotations
|
||||||
|| classDescriptor.getKind() == ClassKind.ANNOTATION_CLASS) {
|
|| classDescriptor.getKind() == ClassKind.ANNOTATION_CLASS) {
|
||||||
@@ -882,7 +882,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
|
|
||||||
public Set<VariableDescriptor> resolveFieldGroupByName(@NotNull Name fieldName, @NotNull ResolverScopeData scopeData) {
|
public Set<VariableDescriptor> resolveFieldGroupByName(@NotNull Name fieldName, @NotNull ResolverScopeData scopeData) {
|
||||||
|
|
||||||
final PsiClass psiClass = scopeData.psiClass;
|
final PsiClass psiClass = scopeData.getPsiClass();
|
||||||
if (psiClass == null) {
|
if (psiClass == null) {
|
||||||
return Collections.emptySet();
|
return Collections.emptySet();
|
||||||
}
|
}
|
||||||
@@ -896,7 +896,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
|
|
||||||
final String qualifiedName = psiClass.getQualifiedName();
|
final String qualifiedName = psiClass.getQualifiedName();
|
||||||
javaDescriptorPropertiesResolver.resolveNamedGroupProperties(
|
javaDescriptorPropertiesResolver.resolveNamedGroupProperties(
|
||||||
scopeData.classOrNamespaceDescriptor, scopeData, namedMembers, fieldName,
|
scopeData.getClassOrNamespaceDescriptor(), scopeData, namedMembers, fieldName,
|
||||||
"class or namespace " + qualifiedName);
|
"class or namespace " + qualifiedName);
|
||||||
|
|
||||||
return namedMembers.propertyDescriptors;
|
return namedMembers.propertyDescriptors;
|
||||||
@@ -906,7 +906,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
public Set<VariableDescriptor> resolveFieldGroup(@NotNull ResolverScopeData scopeData) {
|
public Set<VariableDescriptor> resolveFieldGroup(@NotNull ResolverScopeData scopeData) {
|
||||||
|
|
||||||
getResolverScopeData(scopeData);
|
getResolverScopeData(scopeData);
|
||||||
final PsiClass psiClass = scopeData.psiClass;
|
final PsiClass psiClass = scopeData.getPsiClass();
|
||||||
assert psiClass != null;
|
assert psiClass != null;
|
||||||
|
|
||||||
Set<VariableDescriptor> descriptors = Sets.newHashSet();
|
Set<VariableDescriptor> descriptors = Sets.newHashSet();
|
||||||
@@ -916,7 +916,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
Name propertyName = entry.getKey();
|
Name propertyName = entry.getKey();
|
||||||
|
|
||||||
javaDescriptorPropertiesResolver.resolveNamedGroupProperties(
|
javaDescriptorPropertiesResolver.resolveNamedGroupProperties(
|
||||||
scopeData.classOrNamespaceDescriptor, scopeData, namedMembers, propertyName,
|
scopeData.getClassOrNamespaceDescriptor(), scopeData, namedMembers, propertyName,
|
||||||
"class or namespace " + psiClass.getQualifiedName());
|
"class or namespace " + psiClass.getQualifiedName());
|
||||||
descriptors.addAll(namedMembers.propertyDescriptors);
|
descriptors.addAll(namedMembers.propertyDescriptors);
|
||||||
}
|
}
|
||||||
@@ -1001,7 +1001,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
NamedMembers namedMembers = namedMembersMap.get(methodName);
|
NamedMembers namedMembers = namedMembersMap.get(methodName);
|
||||||
if (namedMembers != null && namedMembers.methods != null) {
|
if (namedMembers != null && namedMembers.methods != null) {
|
||||||
|
|
||||||
resolveNamedGroupFunctions(scopeData.classOrNamespaceDescriptor, scopeData.psiClass, namedMembers, methodName, scopeData);
|
resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), scopeData.getPsiClass(), namedMembers, methodName, scopeData);
|
||||||
|
|
||||||
return namedMembers.functionDescriptors;
|
return namedMembers.functionDescriptors;
|
||||||
}
|
}
|
||||||
@@ -1055,7 +1055,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
|
|
||||||
final PsiMethod psiMethod = method.getPsiMethod();
|
final PsiMethod psiMethod = method.getPsiMethod();
|
||||||
final PsiClass containingClass = psiMethod.getContainingClass();
|
final PsiClass containingClass = psiMethod.getContainingClass();
|
||||||
if (scopeData.kotlin) {
|
if (scopeData.isKotlin()) {
|
||||||
// TODO: unless maybe class explicitly extends Object
|
// TODO: unless maybe class explicitly extends Object
|
||||||
assert containingClass != null;
|
assert containingClass != null;
|
||||||
String ownerClassName = containingClass.getQualifiedName();
|
String ownerClassName = containingClass.getQualifiedName();
|
||||||
@@ -1069,7 +1069,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
}
|
}
|
||||||
|
|
||||||
SimpleFunctionDescriptorImpl functionDescriptorImpl = new SimpleFunctionDescriptorImpl(
|
SimpleFunctionDescriptorImpl functionDescriptorImpl = new SimpleFunctionDescriptorImpl(
|
||||||
scopeData.classOrNamespaceDescriptor,
|
scopeData.getClassOrNamespaceDescriptor(),
|
||||||
resolveAnnotations(psiMethod),
|
resolveAnnotations(psiMethod),
|
||||||
Name.identifier(method.getName()),
|
Name.identifier(method.getName()),
|
||||||
DescriptorKindUtils.flagsToKind(method.getJetMethod().kind())
|
DescriptorKindUtils.flagsToKind(method.getJetMethod().kind())
|
||||||
@@ -1102,7 +1102,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
|
|
||||||
functionDescriptorImpl.initialize(
|
functionDescriptorImpl.initialize(
|
||||||
valueParameterDescriptors.receiverType,
|
valueParameterDescriptors.receiverType,
|
||||||
DescriptorUtils.getExpectedThisObjectIfNeeded(scopeData.classOrNamespaceDescriptor),
|
DescriptorUtils.getExpectedThisObjectIfNeeded(scopeData.getClassOrNamespaceDescriptor()),
|
||||||
methodTypeParameters,
|
methodTypeParameters,
|
||||||
valueParameterDescriptors.descriptors,
|
valueParameterDescriptors.descriptors,
|
||||||
returnType,
|
returnType,
|
||||||
@@ -1364,7 +1364,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
for (Map.Entry<Name, NamedMembers> entry : scopeData.getNamedMembersMap().entrySet()) {
|
for (Map.Entry<Name, NamedMembers> entry : scopeData.getNamedMembersMap().entrySet()) {
|
||||||
Name methodName = entry.getKey();
|
Name methodName = entry.getKey();
|
||||||
NamedMembers namedMembers = entry.getValue();
|
NamedMembers namedMembers = entry.getValue();
|
||||||
resolveNamedGroupFunctions(scopeData.classOrNamespaceDescriptor, scopeData.psiClass,
|
resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), scopeData.getPsiClass(),
|
||||||
namedMembers, methodName, scopeData);
|
namedMembers, methodName, scopeData);
|
||||||
functions.addAll(namedMembers.functionDescriptors);
|
functions.addAll(namedMembers.functionDescriptors);
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -208,9 +208,9 @@ class JavaDescriptorResolverHelper {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
static Map<Name, NamedMembers> getNamedMembers(@NotNull ResolverScopeData resolverScopeData) {
|
static Map<Name, NamedMembers> getNamedMembers(@NotNull ResolverScopeData resolverScopeData) {
|
||||||
if (resolverScopeData.psiClass != null) {
|
if (resolverScopeData.getPsiClass() != null) {
|
||||||
@SuppressWarnings("ConstantConditions")
|
@SuppressWarnings("ConstantConditions")
|
||||||
Builder builder = new Builder(new PsiClassWrapper(resolverScopeData.psiClass), resolverScopeData.staticMembers, resolverScopeData.kotlin);
|
Builder builder = new Builder(new PsiClassWrapper(resolverScopeData.getPsiClass()), resolverScopeData.isStaticMembers(), resolverScopeData.isKotlin());
|
||||||
builder.run();
|
builder.run();
|
||||||
return builder.namedMembersMap;
|
return builder.namedMembersMap;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -39,7 +39,7 @@ public class JavaPackageScope extends JavaClassOrPackageScope {
|
|||||||
super(semanticServices, resolverNamespaceData);
|
super(semanticServices, resolverNamespaceData);
|
||||||
this.packageFQN = packageFQN;
|
this.packageFQN = packageFQN;
|
||||||
|
|
||||||
if (!resolverNamespaceData.staticMembers) {
|
if (!resolverNamespaceData.isStaticMembers()) {
|
||||||
throw new IllegalArgumentException("instance members should be resolved using " + JavaClassMembersScope.class);
|
throw new IllegalArgumentException("instance members should be resolved using " + JavaClassMembersScope.class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user