public void importSymbol(String importString, Identifier symbol, String nameInLoadedFile) throws NoSuchVariableException, LoadFailedException { Preconditions.checkState(isGlobal()); // loading is only allowed at global scope. if (!importedExtensions.containsKey(importString)) { throw new LoadFailedException(importString); } Extension ext = importedExtensions.get(importString); // TODO(bazel-team): Throw a LoadFailedException instead, with an appropriate message. // Throwing a NoSuchVariableException is backward compatible, but backward. if (!ext.containsKey(nameInLoadedFile)) { throw new NoSuchVariableException(nameInLoadedFile); } Object value = ext.get(nameInLoadedFile); try { update(symbol.getName(), value); } catch (EvalException e) { throw new LoadFailedException(importString); } }