### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: eval/org/eclipse/jdt/internal/eval/CodeSnippetParser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/eval/org/eclipse/jdt/internal/eval/CodeSnippetParser.java,v retrieving revision 1.68 diff -u -r1.68 CodeSnippetParser.java --- eval/org/eclipse/jdt/internal/eval/CodeSnippetParser.java 26 Aug 2009 22:56:29 -0000 1.68 +++ eval/org/eclipse/jdt/internal/eval/CodeSnippetParser.java 18 Sep 2009 18:20:21 -0000 @@ -29,6 +29,18 @@ int lineSeparatorLength; int problemCountBeforeRecovery = 0; + + private static final char[] BOOLEAN = "boolean".toCharArray(); //$NON-NLS-1$ + private static final char[] BYTE = "byte".toCharArray(); //$NON-NLS-1$ + private static final char[] CHAR = "char".toCharArray(); //$NON-NLS-1$ + private static final char[] DOUBLE = "double".toCharArray(); //$NON-NLS-1$ + private static final char[] FLOAT = "float".toCharArray(); //$NON-NLS-1$ + private static final char[] INT = "int".toCharArray(); //$NON-NLS-1$ + private static final char[] LONG = "long".toCharArray(); //$NON-NLS-1$ + private static final char[] SHORT = "short".toCharArray(); //$NON-NLS-1$ + + private static final char[][] PRIMITIVES = new char[][]{BOOLEAN, BYTE, CHAR, DOUBLE, FLOAT, INT, LONG, SHORT}; + /** * Creates a new code snippet parser. */ @@ -295,9 +307,18 @@ if (nameEnd >= 0) { trimmedTypeName = CharOperation.subarray(trimmedTypeName, 0, nameEnd); } - TypeReference typeReference = new QualifiedTypeReference( + TypeReference typeReference = null; + for (int j = 0; j < PRIMITIVES.length; j++) { + if (CharOperation.equals(PRIMITIVES[j], trimmedTypeName)) { + typeReference = new SingleTypeReference(trimmedTypeName, position); + break; + } + } + if (typeReference == null) { + typeReference = new QualifiedTypeReference( CharOperation.splitOn('.', trimmedTypeName), positions); + } int dimCount = CharOperation.occurencesOf('[', this.evaluationContext.localVariableTypeNames[i]); if (dimCount > 0) { typeReference = copyDims(typeReference, dimCount);