460 /** |
460 /** |
461 * Flag this symbol as potentially undefined in parts of the program |
461 * Flag this symbol as potentially undefined in parts of the program |
462 */ |
462 */ |
463 public void setCanBeUndefined() { |
463 public void setCanBeUndefined() { |
464 assert type.isObject() : type; |
464 assert type.isObject() : type; |
465 if(!canBeUndefined()) { |
465 if (!isParam() && !canBeUndefined()) {//parameters are never undefined |
466 assert !isShared(); |
466 assert !isShared(); |
467 flags |= CAN_BE_UNDEFINED; |
467 flags |= CAN_BE_UNDEFINED; |
468 } |
468 } |
469 } |
469 } |
470 |
470 |