Skip to content

Commit

Permalink
Land #669: Log when scope is not last parent's parent
Browse files Browse the repository at this point in the history
  • Loading branch information
KronicDeth committed Apr 18, 2017
2 parents 5a9c477 + 61f7901 commit e6abc5e
Showing 1 changed file with 20 additions and 13 deletions.
33 changes: 20 additions & 13 deletions src/org/elixir_lang/psi/impl/ElixirPsiImplUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -1691,25 +1691,32 @@ public static boolean processDeclarationsInPreviousSibling(@NotNull final PsiEle
@NotNull ResolveState state,
PsiElement lastParent,
@NotNull @SuppressWarnings("unused") PsiElement entrance) {
assert scope.isEquivalentTo(lastParent.getParent());

boolean keepProcessing = true;
PsiElement previousSibling = lastParent.getPrevSibling();

while (previousSibling != null) {
if (!(previousSibling instanceof ElixirEndOfExpression ||
previousSibling instanceof PsiComment ||
previousSibling instanceof PsiWhiteSpace)) {
if (!createsNewScope(previousSibling)) {
keepProcessing = processor.execute(previousSibling, state);
if (scope.isEquivalentTo(lastParent.getParent())) {
PsiElement previousSibling = lastParent.getPrevSibling();

if (!keepProcessing) {
break;
while (previousSibling != null) {
if (!(previousSibling instanceof ElixirEndOfExpression ||
previousSibling instanceof PsiComment ||
previousSibling instanceof PsiWhiteSpace)) {
if (!createsNewScope(previousSibling)) {
keepProcessing = processor.execute(previousSibling, state);

if (!keepProcessing) {
break;
}
}
}
}

previousSibling = previousSibling.getPrevSibling();
previousSibling = previousSibling.getPrevSibling();
}
} else {
error(
PsiElement.class,
"Scope is not lastParent's parent\nlastParent:\n" + lastParent.getText(),
scope
);
}

return keepProcessing;
Expand Down

0 comments on commit e6abc5e

Please sign in to comment.