int expandLocalICs(){
  List<InnerClass> localICs=innerClasses;
  List<InnerClass> actualICs;
  int changed;
  if (localICs == null) {
    List<InnerClass> impliedICs=computeGloballyImpliedICs();
    if (impliedICs.isEmpty()) {
      actualICs=null;
      changed=0;
    }
 else {
      actualICs=impliedICs;
      changed=1;
    }
  }
 else   if (localICs.isEmpty()) {
    actualICs=null;
    changed=0;
  }
 else {
    actualICs=computeICdiff();
    changed=actualICs.containsAll(localICs) ? +1 : -1;
  }
  setInnerClasses(actualICs);
  return changed;
}

int expandLocalICs ( ) { List < InnerClass > localICs = innerClasses ; List < InnerClass > actualICs ; int changed ; if ( localICs == null ) { List < InnerClass > impliedICs = computeGloballyImpliedICs ( ) ; if ( impliedICs . isEmpty ( ) ) { actualICs = null ; changed = 0 ; } else { actualICs = impliedICs ; changed = 1 ; } } else if ( localICs . isEmpty ( ) ) { actualICs = null ; changed = 0 ; } else { actualICs = computeICdiff ( ) ; changed = actualICs . containsAll ( localICs ) ? + 1 : - 1 ; } setInnerClasses ( actualICs ) ; return changed ; }
when unpacking , undo the effect of minimizelocalics . must return negative if any ic tuples may have been deleted . otherwise , return positive if any ic tuples were added .
