Changeset 14548
- Timestamp:
- 06/17/13 22:20:27 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/1.2.x/src/org/armedbear/lisp/Package.java
r14545 r14548 603 603 public synchronized void shadowingImport(Symbol symbol) 604 604 { 605 LispObject where = NIL;606 605 final String symbolName = symbol.getName(); 607 Symbol sym = externalSymbols.get(symbol.name.toString()); 608 if (sym != null) { 609 where = Keyword.EXTERNAL; 610 } else { 606 Symbol sym = externalSymbols.get(symbolName); 607 if (sym == null) 611 608 sym = internalSymbols.get(symbol.name.toString()); 612 if (sym != null) { 613 where = Keyword.INTERNAL; 609 } 610 if (sym != null) 611 if (sym != symbol) { 612 if (shadowingSymbols != null) 613 shadowingSymbols.remove(symbolName); 614 unintern(sym); 614 615 } else { 615 // Look in external symbols of used packages. 616 if (useList instanceof Cons) { 617 LispObject usedPackages = useList; 618 while (usedPackages != NIL) { 619 Package pkg = (Package) usedPackages.car(); 620 sym = pkg.findExternalSymbol(symbol.name); 621 if (sym != null) { 622 where = Keyword.INHERITED; 623 break; 624 } 625 usedPackages = usedPackages.cdr(); 626 } 627 } 628 } 629 } 630 if (sym != null) { 631 if (where == Keyword.INTERNAL || where == Keyword.EXTERNAL) { 632 if (sym != symbol) { 633 if (shadowingSymbols != null) 634 shadowingSymbols.remove(symbolName); 635 unintern(sym); 636 } else if (where == Keyword.INTERNAL) { 637 // Assert rgument is already correctly a shadowing import 638 Debug.assertTrue(shadowingSymbols != null); 639 Debug.assertTrue(shadowingSymbols.get(symbolName) != null); 640 return; 641 } 616 // Assert argument is already correctly a shadowing import 617 Debug.assertTrue(shadowingSymbols != null); 618 Debug.assertTrue(shadowingSymbols.get(symbolName) != null); 619 return; 642 620 } 643 621 }
Note: See TracChangeset
for help on using the changeset viewer.