code: private void maybeAddAliasToSymbolTable(Node n, String module) {
      if (preprocessorSymbolTable == null) {
        return;
      }
      n.putBooleanProp(Node.MODULE_ALIAS, true);
      // Alias can be used in js types. Types have node type STRING and not NAME so we have to
      // use their name as string.
      String nodeName =
          n.isString() || n.isImportStar()
              ? n.getString()
              : preprocessorSymbolTable.getQualifiedName(n);
      // We need to include module as part of the name because aliases are local to current module.
      // Aliases with the same name from different module should be completely different entities.
      String name = "alias_" + module + "_" + nodeName;
      preprocessorSymbolTable.addReference(n, name);
    }
docs: Add alias nodes to the symbol table as they going to be removed by rewriter. Example aliases:
  
  <pre>
  import * as foo from './foo';
  import {doBar} from './bar';
  
  console.log(doBar);
  </pre>
  
  @param n Alias node. In the example above alias nodes are foo, doBar, and doBar.
  @param module Name of the module currently being processed.