[Checkers] Problem with implicit annotations on files not specified on command line

Michael Ernst mernst at csail.mit.edu
Sat Apr 5 11:15:29 EDT 2008


When I run

  cd $inv/java
  make interned

I get this error message:

./daikon/Daikon.java:1596: incompatible types.
found   :  daikon.VarInfo[@checkers.quals.Interned ]
required:  daikon.VarInfo[]

In the program, the found and required types are both "VarInfo[]", but one
of them has had "@Interned" added to it whereas the other has not.

exit_vars is declared as

        VarInfo[] exit_vars = new VarInfo[len];

and the constructor to which exit_vars is passed as the last argument is
declared as

  public PptTopLevel (String name, PptType type, List<ParentRelation> parents,
                      EnumSet<PptFlags> flags, List<String> ppt_successors,
                      String function_id, int bb_length, VarInfo[] var_infos) {

The problem seems to be that I did not include PptTopLevel.java in the
argument list to the checker.  I don't think I should have to do this.
PptTopLevel.java doesn't contain any @Interned annotations, and I don't
want to check it, but nonetheless its signatures should be properly
recognized (including implicit annotations).  I will try to work around
this, but I am not sure whether I will be able to.  (The interned case
study focuses on just a few files of Daikon to avoid the need to annotate
the entire thing, and to avoid false positives in the many files where
interning is not used in an interesting way.)



More information about the checkers mailing list