Separate tree structures for local and non-local root declarations

This commit is contained in:
Alexey Sedunov
2013-09-27 17:34:26 +04:00
parent c93d35ad57
commit 48ddd7678d
6 changed files with 234 additions and 206 deletions
@@ -1030,7 +1030,7 @@ public class JetPsiUtil {
return header != null ? header.getQualifiedName() : null;
}
public static JetElement getLocalizingCodeBlock(@NotNull JetNamedDeclaration declaration) {
public static JetElement getEnclosingBlockForLocalDeclaration(@NotNull JetNamedDeclaration declaration) {
//noinspection unchecked
JetDeclaration container =
PsiTreeUtil.getParentOfType(declaration, JetNamedFunction.class, JetPropertyAccessor.class, JetClassInitializer.class);
@@ -1041,4 +1041,8 @@ public class JetPsiUtil {
? ((JetClassInitializer) container).getBody()
: ((JetDeclarationWithBody) container).getBodyExpression();
}
public static boolean isLocal(@NotNull JetNamedDeclaration declaration) {
return getEnclosingBlockForLocalDeclaration(declaration) != null;
}
}