diff --git a/jlisa/src/main/java/it/unive/jlisa/frontend/visitors/ExpressionVisitor.java b/jlisa/src/main/java/it/unive/jlisa/frontend/visitors/ExpressionVisitor.java index e2cf9f6bd..043470b88 100644 --- a/jlisa/src/main/java/it/unive/jlisa/frontend/visitors/ExpressionVisitor.java +++ b/jlisa/src/main/java/it/unive/jlisa/frontend/visitors/ExpressionVisitor.java @@ -347,6 +347,12 @@ public boolean visit( @Override public boolean visit( ClassInstanceCreation node) { + if (node.getAnonymousClassDeclaration() != null) { + throw new ParsingException("anonymous-class", + ParsingException.Type.UNSUPPORTED_STATEMENT, + "Anonymous classes are not supported.", + getSourceCodeLocation(node)); + } TypeASTVisitor typeVisitor = new TypeASTVisitor(parserContext, source, compilationUnit, container); node.getType().accept(typeVisitor); Type type = typeVisitor.getType(); diff --git a/jlisa/src/test/java/it/unive/jlisa/svcomp/SVCompTestcases.java b/jlisa/src/test/java/it/unive/jlisa/svcomp/SVCompTestcases.java index 956ad89f6..319bd78e4 100644 --- a/jlisa/src/test/java/it/unive/jlisa/svcomp/SVCompTestcases.java +++ b/jlisa/src/test/java/it/unive/jlisa/svcomp/SVCompTestcases.java @@ -332,7 +332,7 @@ public void urldecoder2_test() throws IOException { perform(conf); } - @Test + @Ignore // Ignored due to anonymous class. public void Basic1_test() throws IOException { // this test had troublesome parsing errors, // but it is too complex to thoroughly check its results