[Checkers] Interned checker throws ClassCastException
Matt Papi
mpapi at csail.mit.edu
Fri Feb 29 18:29:26 EST 2008
I believe we have fixed this (as of r1824). It was due to some of the
changes we'd made since this morning.
- Matt
Michael Ernst wrote:
> Matt told me that he believes the current version of the Interned checker
> (in SVN) should at least not throw any exceptions, even if it doesn't
> perfectly enforce all the rules at the moment. But this wasn't my
> experience: I get a ClassCastException when I run "make interned-all" in
> Daikon. See below.
>
> -Mike
>
>
>
> -*- mode: compilation; default-directory: "~/research/invariants/java/" -*-
> Compilation started at Fri Feb 29 21:41:36
>
> make interned-all
> /DS/home-0/mernst/research/invariants/scripts/javac-xlint -p ([/\\]jtb[/\\])|([/\\]junit[/\\]) javac -g -target 5 -typeprocessor checkers.interned.InternedChecker ...
> ./daikon/PptName.java:243: warning: use of .equals can be safely replaced by ==/!=
> return FileIO.object_suffix.equals(point);
> ^
> ./daikon/PptName.java:251: warning: use of .equals can be safely replaced by ==/!=
> return FileIO.class_static_suffix.equals(point);
> ^
> ./daikon/PptName.java:258: warning: use of .equals can be safely replaced by ==/!=
> return FileIO.global_suffix.equals (point);
> ^
> ./daikon/PptName.java:280: warning: use of .equals can be safely replaced by ==/!=
> return (point != null) && point.equals(FileIO.exit_suffix);
> ^
> ./daikon/inv/Invariant.java:904: comparison requires two @Interned types
> if (inv1 == inv2)
> ^
> ./daikon/inv/Invariant.java:933: comparison requires two @Interned types
> if (inv1.ppt.parent == inv2.ppt.parent) {
> ^
> ./daikon/inv/Invariant.java:1017: warning: use of .equals can be safely replaced by ==/!=
> if (!inv1.getClass().equals(inv2.getClass())) {
> ^
> ./daikon/inv/Invariant.java:1036: warning: use of .equals can be safely replaced by ==/!=
> if (!var1.name().equals (var2.name()))
> ^
> ./daikon/inv/Invariant.java:1261: incompatible types.
> found : daikon.VarInfo[@checkers.quals.Interned ]
> required: java.lang.Object[]
> if (! ArraysMDE.noDuplicates(vis)) {
> ^
> ./daikon/inv/Invariant.java:1283: incompatible types.
> found : daikon.VarInfo[@checkers.quals.Interned ]
> required: java.lang.Object[]
> return ! ArraysMDE.noDuplicates(ppt.var_infos);
> ^
> ./daikon/inv/Invariant.java:1408: warning: use of .equals can be safely replaced by ==/!=
> if (inv1.getClass().equals(inv2.getClass())) {
> ^
>
>
> An annotation processor threw an uncaught exception.
> Consult the following stack trace for details.
> java.lang.ClassCastException: checkers.types.AnnotatedTypeMirror$AnnotatedDeclaredType cannot be cast to checkers.types.AnnotatedTypeMirror$AnnotatedExecutableType
> at checkers.basetype.BaseTypeVisitor.visitMethodInvocation(BaseTypeVisitor.java:171)
> at checkers.interned.InternedVisitor.visitMethodInvocation(InternedVisitor.java:91)
> at checkers.interned.InternedVisitor.visitMethodInvocation(InternedVisitor.java:28)
> at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1315)
> at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
> at com.sun.source.util.TreeScanner.visitExpressionStatement(TreeScanner.java:239)
> at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1155)
> at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
> at com.sun.source.util.TreeScanner.scan(TreeScanner.java:90)
> at com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:159)
> at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:781)
> at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
> at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
> at com.sun.source.util.TreeScanner.visitMethod(TreeScanner.java:143)
> at checkers.basetype.BaseTypeVisitor.visitMethod(BaseTypeVisitor.java:137)
> at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:681)
> at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
> at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:80)
> at com.sun.source.util.TreeScanner.scan(TreeScanner.java:90)
> at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:98)
> at com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:132)
> at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:604)
> at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
> at com.sun.source.util.TreeScanner.scan(TreeScanner.java:90)
> at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:98)
> at com.sun.source.util.TreeScanner.visitCompilationUnit(TreeScanner.java:119)
> at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:488)
> at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
> at checkers.source.SourceChecker.process(SourceChecker.java:194)
> at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:733)
> at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:662)
> at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:807)
> at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:995)
> at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:741)
> at com.sun.tools.javac.main.Main.compile(Main.java:380)
> at com.sun.tools.javac.main.Main.compile(Main.java:306)
> at com.sun.tools.javac.main.Main.compile(Main.java:297)
> at com.sun.tools.javac.Main.compile(Main.java:82)
> at com.sun.tools.javac.Main.main(Main.java:67)
> make: *** [interned-all] Error 1
>
> Compilation exited abnormally with code 2 at Fri Feb 29 21:41:54
>
> _______________________________________________
> checkers mailing list
> checkers at lists.csail.mit.edu
> https://lists.csail.mit.edu/mailman/listinfo/checkers
More information about the checkers
mailing list