View | Details | Raw Unified | Return to bug 87749 | Differences between
and this patch

Collapse All | Expand All

(-)compiler/org/eclipse/jdt/internal/compiler/lookup/ParameterizedGenericMethodBinding.java (-6 / +6 lines)
Lines 321-336 Link Here
321
	 * p.X<U> { <T> void bar(T t, U u) { new X<String>().bar(this, "") } } --> Lp/X<Ljava/lang/String;>;.bar<T:Ljava/lang/Object;>(TT;TU;)V%<Lp/X;>
321
	 * p.X<U> { <T> void bar(T t, U u) { new X<String>().bar(this, "") } } --> Lp/X<Ljava/lang/String;>;.bar<T:Ljava/lang/Object;>(TT;TU;)V%<Lp/X;>
322
	 */
322
	 */
323
	public char[] computeUniqueKey(boolean isLeaf) {
323
	public char[] computeUniqueKey(boolean isLeaf) {
324
		if (this.isRaw)
325
			return super.computeUniqueKey(isLeaf);
326
		StringBuffer buffer = new StringBuffer();
324
		StringBuffer buffer = new StringBuffer();
327
		buffer.append(super.computeUniqueKey(isLeaf));
325
		buffer.append(super.computeUniqueKey(isLeaf));
328
		buffer.append('%');
326
		buffer.append('%');
329
		buffer.append('<');
327
		buffer.append('<');
330
		int length = this.typeArguments.length;
328
		if (!this.isRaw) {
331
		for (int i = 0; i < length; i++) {
329
			int length = this.typeArguments.length;
332
			TypeBinding typeArgument = this.typeArguments[i];
330
			for (int i = 0; i < length; i++) {
333
			buffer.append(typeArgument.computeUniqueKey(false/*not a leaf*/));
331
				TypeBinding typeArgument = this.typeArguments[i];
332
				buffer.append(typeArgument.computeUniqueKey(false/*not a leaf*/));
333
			}
334
		}
334
		}
335
		buffer.append('>');
335
		buffer.append('>');
336
		int resultLength = buffer.length();
336
		int resultLength = buffer.length();
(-)model/org/eclipse/jdt/internal/core/util/BindingKeyParser.java (-1 / +2 lines)
Lines 312-318 Link Here
312
		}
312
		}
313
		
313
		
314
		void skipParametersStart() {
314
		void skipParametersStart() {
315
			if (this.index < this.source.length && this.source[this.index] == '<')
315
			while (this.index < this.source.length && (this.source[this.index] == '<' || this.source[this.index] == '%'))
316
				this.index++;
316
				this.index++;
317
		}
317
		}
318
		
318
		
Lines 611-616 Link Here
611
	}
611
	}
612
	
612
	
613
	private void parseParameterizedMethod() {
613
	private void parseParameterizedMethod() {
614
		this.scanner.skipParametersStart();
614
		while (!this.scanner.isAtParametersEnd()) {
615
		while (!this.scanner.isAtParametersEnd()) {
615
			parseTypeArgument();
616
			parseTypeArgument();
616
		}
617
		}
(-)model/org/eclipse/jdt/internal/core/util/BindingKeyResolver.java (-2 / +5 lines)
Lines 40-45 Link Here
40
import org.eclipse.jdt.internal.compiler.lookup.PackageBinding;
40
import org.eclipse.jdt.internal.compiler.lookup.PackageBinding;
41
import org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding;
41
import org.eclipse.jdt.internal.compiler.lookup.ParameterizedGenericMethodBinding;
42
import org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding;
42
import org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding;
43
import org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding;
43
import org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding;
44
import org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding;
44
import org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding;
45
import org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding;
45
import org.eclipse.jdt.internal.compiler.lookup.TypeBinding;
46
import org.eclipse.jdt.internal.compiler.lookup.TypeBinding;
Lines 189-196 Link Here
189
190
190
	public void consumeParameterizedMethod() {
191
	public void consumeParameterizedMethod() {
191
		TypeBinding[] arguments = getTypeBindingArguments();
192
		TypeBinding[] arguments = getTypeBindingArguments();
192
		if (arguments.length != this.methodBinding.typeVariables().length) return;
193
		if (arguments.length != this.methodBinding.typeVariables().length)
193
	 	this.methodBinding = new ParameterizedGenericMethodBinding(this.methodBinding, arguments, this.environment);
194
			this.methodBinding = new ParameterizedGenericMethodBinding(this.methodBinding, (RawTypeBinding) null, this.environment);
195
		else
196
	 		this.methodBinding = new ParameterizedGenericMethodBinding(this.methodBinding, arguments, this.environment);
194
		this.compilerBinding = this.methodBinding;
197
		this.compilerBinding = this.methodBinding;
195
	}
198
	}
196
	
199
	

Return to bug 87749