java2typescript icon indicating copy to clipboard operation
java2typescript copied to clipboard

Crashes when there's a switch through with no statement in it

Open Minemobs opened this issue 9 months ago • 1 comments

Java2Typescript crashes when it encounters a switch fall through with no code in it. When trying to convert the example code, Java2Typescript crashes with this error:

Converting 1 files...
Converting: /home/minemobs/Projects/ts/ESC/test/src/Main.java...file:///tmp/bunx-1000-java2typescript@latest/node_modules/java2typescript/output/src/JavaFileSymbolTable.js:405
            const switchExpression = statementContext?.parExpression();
                                                       ^

TypeError: statementContext?.parExpression is not a function
    at JavaFileSymbolTable.resolveSwitchLabel (file:///home/minemobs/.npm/_npx/dbd2589990793958/node_modules/java2typescript/output/src/JavaFileSymbolTable.js:405:56)
    at JavaFileSymbolTable.getQualifiedSymbol (file:///home/minemobs/.npm/_npx/dbd2589990793958/node_modules/java2typescript/output/src/JavaFileSymbolTable.js:65:25)
    at JavaFileSource.getQualifiedSymbol (file:///home/minemobs/.npm/_npx/dbd2589990793958/node_modules/java2typescript/output/src/JavaFileSource.js:31:33)
    at FileProcessor.resolveType (file:///home/minemobs/.npm/_npx/dbd2589990793958/node_modules/java2typescript/output/src/conversion/FileProcessor.js:3263:34)
    at FileProcessor.processPrimary (file:///home/minemobs/.npm/_npx/dbd2589990793958/node_modules/java2typescript/output/src/conversion/FileProcessor.js:2292:39)
    at FileProcessor.processExpression (file:///home/minemobs/.npm/_npx/dbd2589990793958/node_modules/java2typescript/output/src/conversion/FileProcessor.js:1709:37)
    at FileProcessor.processSwitchLabel (file:///home/minemobs/.npm/_npx/dbd2589990793958/node_modules/java2typescript/output/src/conversion/FileProcessor.js:2603:18)
    at file:///home/minemobs/.npm/_npx/dbd2589990793958/node_modules/java2typescript/output/src/conversion/FileProcessor.js:2458:45
    at Array.forEach (<anonymous>)
    at FileProcessor.processStatement (file:///home/minemobs/.npm/_npx/dbd2589990793958/node_modules/java2typescript/output/src/conversion/FileProcessor.js:2457:43)

Node.js v18.15.0

Example of Java code:

import java.util.concurrent.TimeUnit;

public class Main {
    public int doSomething(TimeUnit unit) {
        switch(unit) {
            case DAYS:
            case HOURS:
            case SECONDS:
                return 1;
            //Crashes after adding this
            case MILLISECONDS:
            case MICROSECONDS:
        }
        return 0;
    }
}

Minemobs avatar May 15 '24 17:05 Minemobs