From 5f44c17b85ad78ea9e81a178a2d08a74474e502f Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Sun, 15 Jan 2012 18:56:48 +0400 Subject: [PATCH] ReadClassDataTest: read inner classes (this commit is made on speed 250km/h somewhere between Moscow and Saint Petersburg) --- .../jet/lang/resolve/java/JavaClassMembersScope.java | 2 ++ .../jet/lang/resolve/java/JavaDescriptorResolver.java | 9 +++++++++ compiler/testData/readClass/class/ClassInnerClass.kt | 6 ++++++ 3 files changed, 17 insertions(+) create mode 100644 compiler/testData/readClass/class/ClassInnerClass.kt diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassMembersScope.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassMembersScope.java index 7eb48c22982..80c8b72a9c9 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassMembersScope.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassMembersScope.java @@ -83,6 +83,8 @@ public class JavaClassMembersScope implements JetScope { } allDescriptors.addAll(semanticServices.getDescriptorResolver().resolveFieldGroup(containingDeclaration, psiClass, staticMembers)); + + allDescriptors.addAll(semanticServices.getDescriptorResolver().resolveInnerClasses(containingDeclaration, psiClass, staticMembers)); } return allDescriptors; } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index 4494858e185..feb5b6896aa 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -1409,4 +1409,13 @@ public class JavaDescriptorResolver { public TypeParameterDescriptor resolveTypeParameter(PsiTypeParameter typeParameter) { return resolveTypeParameterInitialization(typeParameter).descriptor; } + + public List resolveInnerClasses(DeclarationDescriptor owner, PsiClass psiClass, boolean staticMembers) { + PsiClass[] innerPsiClasses = psiClass.getInnerClasses(); + List r = new ArrayList(innerPsiClasses.length); + for (PsiClass innerPsiClass : innerPsiClasses) { + r.add(resolveClass(innerPsiClass)); + } + return r; + } } diff --git a/compiler/testData/readClass/class/ClassInnerClass.kt b/compiler/testData/readClass/class/ClassInnerClass.kt new file mode 100644 index 00000000000..8cb974151c7 --- /dev/null +++ b/compiler/testData/readClass/class/ClassInnerClass.kt @@ -0,0 +1,6 @@ +package test + +class Outer { + class Inner { + } +}