vscode-java-debug icon indicating copy to clipboard operation
vscode-java-debug copied to clipboard

Cannot evaluate because of compilation error(s). Occurs within watch expressions.

Open mpette200 opened this issue 3 years ago • 4 comments
trafficstars

While debugging, watches display "Cannot evaluate because of compilation error(s): ......". This is annoying, and actually the same issue seems to prevent conditional breakpoints from working. This seems to occur whenever an inner class is present within the method.

Environment
  • Operating System: Microsoft Windows [Version 10.0.19042.1348]
  • JDK version: jdk-11.0.12
  • Visual Studio Code version: 1.62.3 (user setup)
  • Java extension version: Java(TM) by Red Hat v1.1.0
  • Java Debugger extension version: v0.37.0
Steps To Reproduce
  1. Create the slightly modified "Hello World" by copy / pasting the code below.
  2. Add a breakpoint then debug.
  3. Set a watch expression for msg.length()
import java.util.List;
import java.util.ArrayList;

public class Hello {
    public static void main(String[] args) {
        
        class Position {
            int x;
            int y;
        }
        
        String msg = "Hello World";
        List<Position> x = new ArrayList<>();
        System.out.println(msg + x);
    }

}
Current Result

image

Expected Result

msg.length() should evaluate to a number.

Additional Informations

If I move the "class Position {}" so that it is no longer an inner class then the debugger seems to work correctly.

mpette200 avatar Dec 07 '21 10:12 mpette200

Thanks for the information. I can reproduce it, it's a bug.

testforstephen avatar Dec 14 '21 01:12 testforstephen

Opened an issue at the upstream JDT. https://bugs.eclipse.org/bugs/show_bug.cgi?id=578148

testforstephen avatar Jan 11 '22 06:01 testforstephen

RIP

jasondamour avatar Apr 24 '24 23:04 jasondamour