Bug 68730

Summary: [1.5] No completion
Product: [Eclipse Project] JDT Reporter: Philipe Mulet <philippe_mulet>
Component: CoreAssignee: Philipe Mulet <philippe_mulet>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: 3.0   
Target Milestone: 3.1 M1   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Philipe Mulet CLA 2004-06-28 05:22:50 EDT
3.0 + Cheetah as of 20040628

On following code, no completion is available:

public class Y {
	void foo(){
		X someX = new X();
		som<CODEASSIST>.b
	}
}

where X.java is:
public class X <T extends String, U> {
	<Y1> void bar(Y1[] y) {}
	void bar2(Y<E3[]>[] ye[]) {}
    void foo(java.util.Map<Object[],String>.MapEntry<p.K<T>[],? super q.r.V8> 
m){
    }
    
    Class<? extends Object> getClass0() {}
    <E extends String> void pair (X<? extends E, U> e, T t){
    }
}
Comment 1 David Audel CLA 2004-06-28 06:49:35 EDT
The problem seems to be inside SourceTypeConverter.decodeType().

Exception caught by CompletionEngine:
java.lang.ArrayIndexOutOfBoundsException: -1
	at org.eclipse.jdt.core.compiler.CharOperation.splitOn
(CharOperation.java:2499)
	at 
org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.decodeType
(SourceTypeConverter.java:456)
	at 
org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.createTypeReferenc
e(SourceTypeConverter.java:388)
	at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert
(SourceTypeConverter.java:214)
	at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert
(SourceTypeConverter.java:327)
	at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert
(SourceTypeConverter.java:137)
	at 
org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.buildCompilationUn
it(SourceTypeConverter.java:92)
	at org.eclipse.jdt.internal.codeassist.impl.Engine.accept
(Engine.java:67)
	at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType
(LookupEnvironment.java:118)
	at 
org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage
(PackageBinding.java:169)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage
(Scope.java:1928)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getType
(Scope.java:1721)
	at 
org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding
(SingleTypeReference.java:38)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType
(TypeReference.java:117)
	at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve
(LocalDeclaration.java:137)
	at 
org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatemen
ts(AbstractMethodDeclaration.java:382)
	at 
org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements
(MethodDeclaration.java:133)
	at 
org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve
(AbstractMethodDeclaration.java:360)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve
(TypeDeclaration.java:920)
	at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve
(TypeDeclaration.java:969)
	at 
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve
(CompilationUnitDeclaration.java:280)
	at org.eclipse.jdt.internal.codeassist.CompletionEngine.complete
(CompletionEngine.java:970)
	at ...
Comment 2 Philipe Mulet CLA 2004-06-28 07:36:34 EDT
Fixed. Added ReconcilerTest#testMethodWithError13.