private void addImport(Tree.ImportMemberOrType member, ImportList il, Import i) { String alias = i.getAlias(); if (alias != null) { Map<String, String> mods = unit.getModifiers(); if (mods.containsKey(alias) && mods.get(alias).equals(alias)) { // spec says you can't hide a language modifier // unless the modifier itself has an alias // (this is perhaps a little heavy-handed) member.addError("import hides a language modifier: '" + alias + "'"); } else { Import o = unit.getImport(alias); if (o == null) { unit.getImports().add(i); il.getImports().add(i); } else if (o.isWildcardImport()) { unit.getImports().remove(o); il.getImports().remove(o); unit.getImports().add(i); il.getImports().add(i); } else { member.addError("duplicate import alias: '" + alias + "'"); } } } }
private void addWildcardImport(ImportList il, Declaration dec, Import i) { if (notOverloaded(dec)) { String alias = i.getAlias(); if (alias != null) { Import o = unit.getImport(dec.getName()); if (o != null && o.isWildcardImport()) { if (o.getDeclaration().equals(dec) || dec.isNativeHeader()) { // this case only happens in the IDE, // due to reuse of the Unit unit.getImports().remove(o); il.getImports().remove(o); } else if (!dec.isNative()) { i.setAmbiguous(true); o.setAmbiguous(true); } } unit.getImports().add(i); il.getImports().add(i); } } }