public SyntheticArgumentBinding addSyntheticArgument(LocalVariableBinding actualOuterLocalVariable) { if (!isPrototype()) throw new IllegalStateException(); SyntheticArgumentBinding synthLocal = null; if (this.outerLocalVariables == null) { synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); this.outerLocalVariables = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.outerLocalVariables.length; int newArgIndex = size; for (int i = size; --i >= 0;) { // must search backwards if (this.outerLocalVariables[i].actualOuterLocalVariable == actualOuterLocalVariable) return this.outerLocalVariables[i]; // already exists if (this.outerLocalVariables[i].id > actualOuterLocalVariable.id) newArgIndex = i; } SyntheticArgumentBinding[] synthLocals = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.outerLocalVariables, 0, synthLocals, 0, newArgIndex); synthLocals[newArgIndex] = synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); System.arraycopy(this.outerLocalVariables, newArgIndex, synthLocals, newArgIndex + 1, size - newArgIndex); this.outerLocalVariables = synthLocals; } //System.out.println("Adding synth arg for local var: " + new String(actualOuterLocalVariable.name) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(LocalVariableBinding actualOuterLocalVariable) { SyntheticArgumentBinding synthLocal = null; if (this.outerLocalVariables == null) { synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); this.outerLocalVariables = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.outerLocalVariables.length; int newArgIndex = size; for (int i = size; --i >= 0;) { // must search backwards if (this.outerLocalVariables[i].actualOuterLocalVariable == actualOuterLocalVariable) return this.outerLocalVariables[i]; // already exists if (this.outerLocalVariables[i].id > actualOuterLocalVariable.id) newArgIndex = i; } SyntheticArgumentBinding[] synthLocals = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.outerLocalVariables, 0, synthLocals, 0, newArgIndex); synthLocals[newArgIndex] = synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); System.arraycopy(this.outerLocalVariables, newArgIndex, synthLocals, newArgIndex + 1, size - newArgIndex); this.outerLocalVariables = synthLocals; } //System.out.println("Adding synth arg for local var: " + new String(actualOuterLocalVariable.name) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(LocalVariableBinding actualOuterLocalVariable) { SyntheticArgumentBinding synthLocal = null; if (this.outerLocalVariables == null) { synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); this.outerLocalVariables = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.outerLocalVariables.length; int newArgIndex = size; for (int i = size; --i >= 0;) { // must search backwards if (this.outerLocalVariables[i].actualOuterLocalVariable == actualOuterLocalVariable) return this.outerLocalVariables[i]; // already exists if (this.outerLocalVariables[i].id > actualOuterLocalVariable.id) newArgIndex = i; } SyntheticArgumentBinding[] synthLocals = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.outerLocalVariables, 0, synthLocals, 0, newArgIndex); synthLocals[newArgIndex] = synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); System.arraycopy(this.outerLocalVariables, newArgIndex, synthLocals, newArgIndex + 1, size - newArgIndex); this.outerLocalVariables = synthLocals; } //System.out.println("Adding synth arg for local var: " + new String(actualOuterLocalVariable.name) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(LocalVariableBinding actualOuterLocalVariable) { if (!isPrototype()) throw new IllegalStateException(); SyntheticArgumentBinding synthLocal = null; if (this.outerLocalVariables == null) { synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); this.outerLocalVariables = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.outerLocalVariables.length; int newArgIndex = size; for (int i = size; --i >= 0;) { // must search backwards if (this.outerLocalVariables[i].actualOuterLocalVariable == actualOuterLocalVariable) return this.outerLocalVariables[i]; // already exists if (this.outerLocalVariables[i].id > actualOuterLocalVariable.id) newArgIndex = i; } SyntheticArgumentBinding[] synthLocals = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.outerLocalVariables, 0, synthLocals, 0, newArgIndex); synthLocals[newArgIndex] = synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); System.arraycopy(this.outerLocalVariables, newArgIndex, synthLocals, newArgIndex + 1, size - newArgIndex); this.outerLocalVariables = synthLocals; } //System.out.println("Adding synth arg for local var: " + new String(actualOuterLocalVariable.name) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(LocalVariableBinding actualOuterLocalVariable) { if (!isPrototype()) throw new IllegalStateException(); SyntheticArgumentBinding synthLocal = null; if (this.outerLocalVariables == null) { synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); this.outerLocalVariables = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.outerLocalVariables.length; int newArgIndex = size; for (int i = size; --i >= 0;) { // must search backwards if (this.outerLocalVariables[i].actualOuterLocalVariable == actualOuterLocalVariable) return this.outerLocalVariables[i]; // already exists if (this.outerLocalVariables[i].id > actualOuterLocalVariable.id) newArgIndex = i; } SyntheticArgumentBinding[] synthLocals = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.outerLocalVariables, 0, synthLocals, 0, newArgIndex); synthLocals[newArgIndex] = synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); System.arraycopy(this.outerLocalVariables, newArgIndex, synthLocals, newArgIndex + 1, size - newArgIndex); this.outerLocalVariables = synthLocals; } //System.out.println("Adding synth arg for local var: " + new String(actualOuterLocalVariable.name) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(LocalVariableBinding actualOuterLocalVariable) { if (!isPrototype()) throw new IllegalStateException(); SyntheticArgumentBinding synthLocal = null; if (this.outerLocalVariables == null) { synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); this.outerLocalVariables = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.outerLocalVariables.length; int newArgIndex = size; for (int i = size; --i >= 0;) { // must search backwards if (this.outerLocalVariables[i].actualOuterLocalVariable == actualOuterLocalVariable) return this.outerLocalVariables[i]; // already exists if (this.outerLocalVariables[i].id > actualOuterLocalVariable.id) newArgIndex = i; } SyntheticArgumentBinding[] synthLocals = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.outerLocalVariables, 0, synthLocals, 0, newArgIndex); synthLocals[newArgIndex] = synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); System.arraycopy(this.outerLocalVariables, newArgIndex, synthLocals, newArgIndex + 1, size - newArgIndex); this.outerLocalVariables = synthLocals; } //System.out.println("Adding synth arg for local var: " + new String(actualOuterLocalVariable.name) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(LocalVariableBinding actualOuterLocalVariable) { if (!isPrototype()) throw new IllegalStateException(); SyntheticArgumentBinding synthLocal = null; if (this.outerLocalVariables == null) { synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); this.outerLocalVariables = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.outerLocalVariables.length; int newArgIndex = size; for (int i = size; --i >= 0;) { // must search backwards if (this.outerLocalVariables[i].actualOuterLocalVariable == actualOuterLocalVariable) return this.outerLocalVariables[i]; // already exists if (this.outerLocalVariables[i].id > actualOuterLocalVariable.id) newArgIndex = i; } SyntheticArgumentBinding[] synthLocals = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.outerLocalVariables, 0, synthLocals, 0, newArgIndex); synthLocals[newArgIndex] = synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); System.arraycopy(this.outerLocalVariables, newArgIndex, synthLocals, newArgIndex + 1, size - newArgIndex); this.outerLocalVariables = synthLocals; } //System.out.println("Adding synth arg for local var: " + new String(actualOuterLocalVariable.name) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(LocalVariableBinding actualOuterLocalVariable) { if (!isPrototype()) throw new IllegalStateException(); SyntheticArgumentBinding synthLocal = null; if (this.outerLocalVariables == null) { synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); this.outerLocalVariables = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.outerLocalVariables.length; int newArgIndex = size; for (int i = size; --i >= 0;) { // must search backwards if (this.outerLocalVariables[i].actualOuterLocalVariable == actualOuterLocalVariable) return this.outerLocalVariables[i]; // already exists if (this.outerLocalVariables[i].id > actualOuterLocalVariable.id) newArgIndex = i; } SyntheticArgumentBinding[] synthLocals = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.outerLocalVariables, 0, synthLocals, 0, newArgIndex); synthLocals[newArgIndex] = synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); System.arraycopy(this.outerLocalVariables, newArgIndex, synthLocals, newArgIndex + 1, size - newArgIndex); this.outerLocalVariables = synthLocals; } //System.out.println("Adding synth arg for local var: " + new String(actualOuterLocalVariable.name) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(LocalVariableBinding actualOuterLocalVariable) { if (!isPrototype()) throw new IllegalStateException(); SyntheticArgumentBinding synthLocal = null; if (this.outerLocalVariables == null) { synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); this.outerLocalVariables = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.outerLocalVariables.length; int newArgIndex = size; for (int i = size; --i >= 0;) { // must search backwards if (this.outerLocalVariables[i].actualOuterLocalVariable == actualOuterLocalVariable) return this.outerLocalVariables[i]; // already exists if (this.outerLocalVariables[i].id > actualOuterLocalVariable.id) newArgIndex = i; } SyntheticArgumentBinding[] synthLocals = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.outerLocalVariables, 0, synthLocals, 0, newArgIndex); synthLocals[newArgIndex] = synthLocal = new SyntheticArgumentBinding(actualOuterLocalVariable); System.arraycopy(this.outerLocalVariables, newArgIndex, synthLocals, newArgIndex + 1, size - newArgIndex); this.outerLocalVariables = synthLocals; } //System.out.println("Adding synth arg for local var: " + new String(actualOuterLocalVariable.name) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(ReferenceBinding targetEnclosingType) { SyntheticArgumentBinding synthLocal = null; if (this.enclosingInstances == null) { synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.enclosingInstances.length; int newArgIndex = size; for (int i = size; --i >= 0;) { if (this.enclosingInstances[i].type == targetEnclosingType) return this.enclosingInstances[i]; // already exists if (enclosingType() == targetEnclosingType) newArgIndex = 0; } SyntheticArgumentBinding[] newInstances = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.enclosingInstances, 0, newInstances, newArgIndex == 0 ? 1 : 0, size); newInstances[newArgIndex] = synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = newInstances; } //System.out.println("Adding synth arg for enclosing type: " + new String(enclosingType.readableName()) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(ReferenceBinding targetEnclosingType) { SyntheticArgumentBinding synthLocal = null; if (this.enclosingInstances == null) { synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.enclosingInstances.length; int newArgIndex = size; for (int i = size; --i >= 0;) { if (this.enclosingInstances[i].type == targetEnclosingType) return this.enclosingInstances[i]; // already exists if (enclosingType() == targetEnclosingType) newArgIndex = 0; } SyntheticArgumentBinding[] newInstances = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.enclosingInstances, 0, newInstances, newArgIndex == 0 ? 1 : 0, size); newInstances[newArgIndex] = synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = newInstances; } //System.out.println("Adding synth arg for enclosing type: " + new String(enclosingType.readableName()) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(ReferenceBinding targetEnclosingType) { SyntheticArgumentBinding synthLocal = null; if (this.enclosingInstances == null) { synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.enclosingInstances.length; int newArgIndex = size; for (int i = size; --i >= 0;) { if (this.enclosingInstances[i].type == targetEnclosingType) return this.enclosingInstances[i]; // already exists if (enclosingType() == targetEnclosingType) newArgIndex = 0; } SyntheticArgumentBinding[] newInstances = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.enclosingInstances, 0, newInstances, newArgIndex == 0 ? 1 : 0, size); newInstances[newArgIndex] = synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = newInstances; } //System.out.println("Adding synth arg for enclosing type: " + new String(enclosingType.readableName()) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(ReferenceBinding targetEnclosingType) { if (!isPrototype()) throw new IllegalStateException(); SyntheticArgumentBinding synthLocal = null; if (this.enclosingInstances == null) { synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.enclosingInstances.length; int newArgIndex = size; if (TypeBinding.equalsEquals(enclosingType(), targetEnclosingType)) newArgIndex = 0; SyntheticArgumentBinding[] newInstances = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.enclosingInstances, 0, newInstances, newArgIndex == 0 ? 1 : 0, size); newInstances[newArgIndex] = synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = newInstances; } //System.out.println("Adding synth arg for enclosing type: " + new String(enclosingType.readableName()) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(ReferenceBinding targetEnclosingType) { if (!isPrototype()) throw new IllegalStateException(); SyntheticArgumentBinding synthLocal = null; if (this.enclosingInstances == null) { synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.enclosingInstances.length; int newArgIndex = size; if (TypeBinding.equalsEquals(enclosingType(), targetEnclosingType)) newArgIndex = 0; SyntheticArgumentBinding[] newInstances = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.enclosingInstances, 0, newInstances, newArgIndex == 0 ? 1 : 0, size); newInstances[newArgIndex] = synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = newInstances; } //System.out.println("Adding synth arg for enclosing type: " + new String(enclosingType.readableName()) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(ReferenceBinding targetEnclosingType) { if (!isPrototype()) throw new IllegalStateException(); SyntheticArgumentBinding synthLocal = null; if (this.enclosingInstances == null) { synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.enclosingInstances.length; int newArgIndex = size; if (TypeBinding.equalsEquals(enclosingType(), targetEnclosingType)) newArgIndex = 0; SyntheticArgumentBinding[] newInstances = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.enclosingInstances, 0, newInstances, newArgIndex == 0 ? 1 : 0, size); newInstances[newArgIndex] = synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = newInstances; } //System.out.println("Adding synth arg for enclosing type: " + new String(enclosingType.readableName()) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(ReferenceBinding targetEnclosingType) { if (!isPrototype()) throw new IllegalStateException(); SyntheticArgumentBinding synthLocal = null; if (this.enclosingInstances == null) { synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.enclosingInstances.length; int newArgIndex = size; if (TypeBinding.equalsEquals(enclosingType(), targetEnclosingType)) newArgIndex = 0; SyntheticArgumentBinding[] newInstances = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.enclosingInstances, 0, newInstances, newArgIndex == 0 ? 1 : 0, size); newInstances[newArgIndex] = synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = newInstances; } //System.out.println("Adding synth arg for enclosing type: " + new String(enclosingType.readableName()) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(ReferenceBinding targetEnclosingType) { if (!isPrototype()) throw new IllegalStateException(); SyntheticArgumentBinding synthLocal = null; if (this.enclosingInstances == null) { synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.enclosingInstances.length; int newArgIndex = size; if (TypeBinding.equalsEquals(enclosingType(), targetEnclosingType)) newArgIndex = 0; SyntheticArgumentBinding[] newInstances = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.enclosingInstances, 0, newInstances, newArgIndex == 0 ? 1 : 0, size); newInstances[newArgIndex] = synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = newInstances; } //System.out.println("Adding synth arg for enclosing type: " + new String(enclosingType.readableName()) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(ReferenceBinding targetEnclosingType) { if (!isPrototype()) throw new IllegalStateException(); SyntheticArgumentBinding synthLocal = null; if (this.enclosingInstances == null) { synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.enclosingInstances.length; int newArgIndex = size; if (TypeBinding.equalsEquals(enclosingType(), targetEnclosingType)) newArgIndex = 0; SyntheticArgumentBinding[] newInstances = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.enclosingInstances, 0, newInstances, newArgIndex == 0 ? 1 : 0, size); newInstances[newArgIndex] = synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = newInstances; } //System.out.println("Adding synth arg for enclosing type: " + new String(enclosingType.readableName()) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(ReferenceBinding targetEnclosingType) { if (!isPrototype()) throw new IllegalStateException(); SyntheticArgumentBinding synthLocal = null; if (this.enclosingInstances == null) { synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.enclosingInstances.length; int newArgIndex = size; if (TypeBinding.equalsEquals(enclosingType(), targetEnclosingType)) newArgIndex = 0; SyntheticArgumentBinding[] newInstances = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.enclosingInstances, 0, newInstances, newArgIndex == 0 ? 1 : 0, size); newInstances[newArgIndex] = synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = newInstances; } //System.out.println("Adding synth arg for enclosing type: " + new String(enclosingType.readableName()) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }
public SyntheticArgumentBinding addSyntheticArgument(ReferenceBinding targetEnclosingType) { if (!isPrototype()) throw new IllegalStateException(); SyntheticArgumentBinding synthLocal = null; if (this.enclosingInstances == null) { synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = new SyntheticArgumentBinding[] {synthLocal}; } else { int size = this.enclosingInstances.length; int newArgIndex = size; if (TypeBinding.equalsEquals(enclosingType(), targetEnclosingType)) newArgIndex = 0; SyntheticArgumentBinding[] newInstances = new SyntheticArgumentBinding[size + 1]; System.arraycopy(this.enclosingInstances, 0, newInstances, newArgIndex == 0 ? 1 : 0, size); newInstances[newArgIndex] = synthLocal = new SyntheticArgumentBinding(targetEnclosingType); this.enclosingInstances = newInstances; } //System.out.println("Adding synth arg for enclosing type: " + new String(enclosingType.readableName()) + " to: " + new String(this.readableName())); if (this.scope.referenceCompilationUnit().isPropagatingInnerClassEmulation) updateInnerEmulationDependents(); return synthLocal; }