Lines 125-131
Link Here
|
125 |
if ((this.tagBits & TagBits.HasTypeVariable) == 0) return; |
125 |
if ((this.tagBits & TagBits.HasTypeVariable) == 0) return; |
126 |
if (actualType == TypeBinding.NULL) return; |
126 |
if (actualType == TypeBinding.NULL) return; |
127 |
|
127 |
|
128 |
if (this.arguments == null) return; |
|
|
129 |
if (!(actualType instanceof ReferenceBinding)) return; |
128 |
if (!(actualType instanceof ReferenceBinding)) return; |
130 |
TypeBinding formalEquivalent, actualEquivalent; |
129 |
TypeBinding formalEquivalent, actualEquivalent; |
131 |
switch (constraint) { |
130 |
switch (constraint) { |
Lines 142-147
Link Here
|
142 |
actualEquivalent = actualType; |
141 |
actualEquivalent = actualType; |
143 |
break; |
142 |
break; |
144 |
} |
143 |
} |
|
|
144 |
// collect through enclosing type |
145 |
ReferenceBinding formalEnclosingType = formalEquivalent.enclosingType(); |
146 |
if (formalEnclosingType != null) { |
147 |
formalEnclosingType.collectSubstitutes(scope, actualEquivalent.enclosingType(), substitutes, constraint); |
148 |
} |
149 |
// collect through type arguments |
150 |
if (this.arguments == null) return; |
145 |
TypeBinding[] formalArguments; |
151 |
TypeBinding[] formalArguments; |
146 |
switch (formalEquivalent.kind()) { |
152 |
switch (formalEquivalent.kind()) { |
147 |
case Binding.GENERIC_TYPE : |
153 |
case Binding.GENERIC_TYPE : |
Lines 570-579
Link Here
|
570 |
// this.methods = null; |
576 |
// this.methods = null; |
571 |
this.modifiers = someType.modifiers; |
577 |
this.modifiers = someType.modifiers; |
572 |
// only set AccGenericSignature if parameterized or have enclosing type required signature |
578 |
// only set AccGenericSignature if parameterized or have enclosing type required signature |
573 |
if (someArguments != null) |
579 |
if (someArguments != null) { |
574 |
this.modifiers |= ExtraCompilerModifiers.AccGenericSignature; |
580 |
this.modifiers |= ExtraCompilerModifiers.AccGenericSignature; |
575 |
else if (this.enclosingType != null) |
581 |
} else if (this.enclosingType != null) { |
576 |
this.modifiers |= (this.enclosingType.modifiers & ExtraCompilerModifiers.AccGenericSignature); |
582 |
this.modifiers |= (this.enclosingType.modifiers & ExtraCompilerModifiers.AccGenericSignature); |
|
|
583 |
this.tagBits |= this.enclosingType.tagBits & TagBits.HasTypeVariable; |
584 |
} |
577 |
if (someArguments != null) { |
585 |
if (someArguments != null) { |
578 |
this.arguments = someArguments; |
586 |
this.arguments = someArguments; |
579 |
for (int i = 0, length = someArguments.length; i < length; i++) { |
587 |
for (int i = 0, length = someArguments.length; i < length; i++) { |