diff options
Diffstat (limited to 'sources/scalac/ast/TreeInfo.java')
-rw-r--r-- | sources/scalac/ast/TreeInfo.java | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/sources/scalac/ast/TreeInfo.java b/sources/scalac/ast/TreeInfo.java index ed442bdf5d..caeb7d72c0 100644 --- a/sources/scalac/ast/TreeInfo.java +++ b/sources/scalac/ast/TreeInfo.java @@ -200,19 +200,21 @@ public class TreeInfo { switch (tree) { case Import(Tree expr, Name[] selectors): Type pre = tree.symbol().type(); - boolean renamed = false; - for (int i = 0; i < selectors.length; i = i + 2) { - if (i + 1 < selectors.length && name.toTermName() == selectors[i + 1]) { - if (name.isTypeName()) - return pre.lookupNonPrivate(selectors[i].toTypeName()); - else - return pre.lookupNonPrivate(selectors[i]); - } else if (name.toTermName() == selectors[i]) { - renamed = true; - } else if (selectors[i] == Names.IMPORT_WILDCARD && !renamed) { - return pre.lookupNonPrivate(name); - } - } + if (pre != Type.ErrorType) { + boolean renamed = false; + for (int i = 0; i < selectors.length; i = i + 2) { + if (i + 1 < selectors.length && name.toTermName() == selectors[i + 1]) { + if (name.isTypeName()) + return pre.lookupNonPrivate(selectors[i].toTypeName()); + else + return pre.lookupNonPrivate(selectors[i]); + } else if (name.toTermName() == selectors[i]) { + renamed = true; + } else if (selectors[i] == Names.IMPORT_WILDCARD && !renamed) { + return pre.lookupNonPrivate(name); + } + } + } return Symbol.NONE; default: throw new ApplicationError(); |