### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: eval/org/eclipse/jdt/internal/eval/CodeSnippetSingleNameReference.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/eval/org/eclipse/jdt/internal/eval/CodeSnippetSingleNameReference.java,v retrieving revision 1.50 diff -u -r1.50 CodeSnippetSingleNameReference.java --- eval/org/eclipse/jdt/internal/eval/CodeSnippetSingleNameReference.java 16 Apr 2008 11:55:01 -0000 1.50 +++ eval/org/eclipse/jdt/internal/eval/CodeSnippetSingleNameReference.java 20 May 2008 02:14:56 -0000 @@ -348,9 +348,9 @@ return; case T_int : if (((assignConstant = expression.constant) != Constant.NotAConstant) - && (assignConstant.typeID() != T_float) // only for integral types - && (assignConstant.typeID() != T_double) - && ((increment = assignConstant.intValue()) == (short) increment)) { // 16 bits value + && (assignConstant.typeID() != T_float) // only for integral types + && (assignConstant.typeID() != T_double) + && ((increment = assignConstant.intValue()) == (short) increment)) { // 16 bits value switch (operator) { case PLUS : codeStream.iinc(localBinding.resolvedPosition, increment); @@ -359,11 +359,13 @@ } return; case MINUS : - codeStream.iinc(localBinding.resolvedPosition, -increment); - if (valueRequired) { - codeStream.load(localBinding); + if (increment != Short.MIN_VALUE) { + codeStream.iinc(localBinding.resolvedPosition, -increment); + if (valueRequired) { + codeStream.load(localBinding); + } + return; } - return; } } default : Index: compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java,v retrieving revision 1.102 diff -u -r1.102 SingleNameReference.java --- compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java 5 May 2008 18:58:31 -0000 1.102 +++ compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java 20 May 2008 02:14:56 -0000 @@ -510,9 +510,9 @@ return; case T_int : if (((assignConstant = expression.constant) != Constant.NotAConstant) - && (assignConstant.typeID() != TypeIds.T_float) // only for integral types - && (assignConstant.typeID() != TypeIds.T_double) - && ((increment = assignConstant.intValue()) == (short) increment)) { // 16 bits value + && (assignConstant.typeID() != TypeIds.T_float) // only for integral types + && (assignConstant.typeID() != TypeIds.T_double) + && ((increment = assignConstant.intValue()) == (short) increment)) { // 16 bits value switch (operator) { case PLUS : codeStream.iinc(localBinding.resolvedPosition, increment); @@ -521,11 +521,13 @@ } return; case MINUS : - codeStream.iinc(localBinding.resolvedPosition, -increment); - if (valueRequired) { - codeStream.load(localBinding); + if (increment != Short.MIN_VALUE) { + codeStream.iinc(localBinding.resolvedPosition, -increment); + if (valueRequired) { + codeStream.load(localBinding); + } + return; } - return; } } default :