fixed INACCESSIBLE_OUTER_CLASS_EXPRESSION check

for extension lambda (with implicit this) in nested class
This commit is contained in:
Svetlana Isakova
2013-12-17 15:32:50 +04:00
parent 400e6d3f44
commit 26f66eaea5
5 changed files with 54 additions and 30 deletions
@@ -421,6 +421,14 @@ public class DescriptorUtils {
return parameterTypes;
}
public static boolean isInsideOuterClassOrItsSubclass(@Nullable DeclarationDescriptor nested, @NotNull ClassDescriptor outer) {
if (nested == null) return false;
if (nested instanceof ClassDescriptor && isSubclass((ClassDescriptor) nested, outer)) return true;
return isInsideOuterClassOrItsSubclass(nested.getContainingDeclaration(), outer);
}
public static boolean isConstructorOfStaticNestedClass(@Nullable CallableDescriptor descriptor) {
return descriptor instanceof ConstructorDescriptor && isStaticNestedClass(descriptor.getContainingDeclaration());
}