From f7da4f681c6b22e88173c5eac31dc2584165946a Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Mon, 17 Sep 2012 15:54:41 +0400 Subject: [PATCH] Don't fall when there's no parent descriptor for expression (Example "class MaxInfo(val a = Int.)") --- .../org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java | 2 +- .../jetbrains/jet/lang/resolve/lazy/ResolveSessionUtils.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java index 0294e3bd6c0..af8bc39bf9b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSession.java @@ -171,7 +171,7 @@ public class ResolveSession { } @NotNull - public JetScope getResolutionScope(PsiElement element) { + public JetScope getResolutionScope(@NotNull PsiElement element) { PsiElement parent = element.getParent(); if (parent instanceof JetFile) { JetFile file = (JetFile) parent; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSessionUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSessionUtils.java index 1ee8fc80d8f..c0cde4c5711 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSessionUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ResolveSessionUtils.java @@ -217,7 +217,9 @@ public class ResolveSessionUtils { private static JetScope getExpressionResolutionScope(@NotNull ResolveSession resolveSession, @NotNull JetExpression expression) { JetDeclaration parentDeclaration = PsiTreeUtil.getParentOfType(expression, JetDeclaration.class); - // DeclarationDescriptor descriptor = resolveToDescriptor(parentDeclaration); + if (parentDeclaration == null) { + return resolveSession.getResolutionScope(expression.getContainingFile().getFirstChild()); + } return resolveSession.getResolutionScope(parentDeclaration); }