[Checkers] Question about Polymorphism

Mahmood Ali mahmood at MIT.EDU
Mon Apr 28 23:07:58 EDT 2008


::==This may affect the ISSTA paper==::

I was wondering how you are envisioning polymorphism with annotations.

1. Namely, how can one specifies when annotation I using the  
polymorphism?  Consider the following:

<T> @Poly T[] toArray(@Poly Collection<T> col) {
     if (col == null) return null;
     else return (@Poly T[]) col.toArray();

How can I specify that the return value has the same nullness but not  
necessary the same interning or mutability as 'col'?

2. Or is it that polymorphism functionality would be in the framework,  
but the annotation itself need to be specified by type system  
(@NullPoly, @InternedPoly, @ReadOnly, etc)?

3. Should poly simply get an argument, like @Poly({NonNull.class})?  I  
think that this is an ugly syntax.

- Mahmood

More information about the checkers mailing list