Source:
<code>public TypeBinding upperBoundForProjection() { TypeBinding upperBound = null; if (this.wildcard != null) { ReferenceBinding[] supers = this.superInterfaces(); if (this.wildcard.boundKind == Wildcard.EXTENDS) { ReferenceBinding[] <START> allBounds = <END> new ReferenceBinding[supers.length + 1]; System.arraycopy(supers, 0, allBounds, 1, supers.length); allBounds[0] = this.superclass(); if (supers.length > 0) { ReferenceBinding[] glbs = Scope.greaterLowerBound(allBounds); if (glbs == null) { upperBound = new ProblemReferenceBinding(null, null, ProblemReasons.ParameterBoundMismatch); } else if (glbs.length == 1) { upperBound = glbs[0]; } else { upperBound = this.environment.createIntersectionType18(glbs); } } else { upperBound = this.superclass; } } else { boolean superClassIsObject = TypeBinding.equalsEquals(this.superclass(), this.environment.getResolvedJavaBaseType(TypeConstants.JAVA_LANG_OBJECT, null)); if (supers.length == 0) { upperBound = this.superclass(); } else if (supers.length == 1) { upperBound = superClassIsObject ? supers[0] : this.environment.createIntersectionType18(new ReferenceBinding[] {this.superclass(), supers[0]}); } else { if (superClassIsObject) { upperBound = this.environment.createIntersectionType18(supers); } else { ReferenceBinding[] allBounds = new ReferenceBinding[supers.length + 1]; System.arraycopy(supers, 0, allBounds, 1, supers.length); allBounds[0] = this.superclass(); upperBound = this.environment.createIntersectionType18(allBounds); } } } } else { upperBound = super.upperBound(); } return upperBound; }</code><technical_language>needed in true-arm of subsequent if</technical_language>

Target:
public TypeBinding upperBoundForProjection() { TypeBinding upperBound = null; if (this.wildcard != null) { ReferenceBinding[] supers = this.superInterfaces(); if (this.wildcard.boundKind == Wildcard.EXTENDS) { if (supers.length > 0) { ReferenceBinding[] allBounds = new ReferenceBinding[supers.length + 1]; System.arraycopy(supers, 0, allBounds, 1, supers.length); allBounds[0] = this.superclass(); ReferenceBinding[] glbs = Scope.greaterLowerBound(allBounds); if (glbs == null) { upperBound = new ProblemReferenceBinding(null, null, ProblemReasons.ParameterBoundMismatch); } else if (glbs.length == 1) { upperBound = glbs[0]; } else { upperBound = this.environment.createIntersectionType18(glbs); } } else { upperBound = this.superclass; } } else { boolean superClassIsObject = TypeBinding.equalsEquals(this.superclass(), this.environment.getResolvedJavaBaseType(TypeConstants.JAVA_LANG_OBJECT, null)); if (supers.length == 0) { upperBound = this.superclass(); } else if (supers.length == 1) { upperBound = superClassIsObject ? supers[0] : this.environment.createIntersectionType18(new ReferenceBinding[] {this.superclass(), supers[0]}); } else { if (superClassIsObject) { upperBound = this.environment.createIntersectionType18(supers); } else { ReferenceBinding[] allBounds = new ReferenceBinding[supers.length + 1]; System.arraycopy(supers, 0, allBounds, 1, supers.length); allBounds[0] = this.superclass(); upperBound = this.environment.createIntersectionType18(allBounds); } } } } else { upperBound = super.upperBound(); } return upperBound; }