[Checkers] Declarative specification of qualifier hierarchy

Michael Ernst mernst at csail.mit.edu
Wed Mar 26 15:06:01 EDT 2008


> > I have been working on creating a new 
> > GraphSubtypeRelation where the checkers would simply specify the subtype 
> > graph of the annotations.  
> 
> A quick note: this is an important feature, and since it's been an open 
> issue for a while, I have some thoughts on its design,

A declarative specification has a number of advantages.

Here's an idea that eliminates code from the checker itself:  specify the
qualifier hierarchy just using meta-annotations, such as

  @Supertype(Readonly.class)
  @interface Mutable { ... }

Also, an @IsDefaultQualifier might specify which annotation is the default
for backward compatibility.  (This idea of using meta-annotations might
have come from someone else; I don't remember.)

I imagine other approaches are possible.

Perhaps the others could describe their approaches, so that we can choose
the best design before implementing.

                    -Mike



More information about the checkers mailing list