View | Details | Raw Unified | Return to bug 129190
Collapse All | Expand All

(-)compiler/org/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding.java (-3 / +11 lines)
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++) {

Return to bug 129190