[Checkers] AnnotatedTypeMirror type parameter cache
    Artemus Harper 
    subanark at gmail.com
       
    Sun Sep  7 01:16:03 EDT 2008
    
    
  
I think the type parameter cache in the AnnotatedTypeMirror is causing some
sharing of type parameters where it shouldn't.
As far as I can tell in one of my cases having:
public void add(@Unique("T") T item) { ... }
ended up being interpreted as:
public void add(@Unique("T") T item) <@Unique("T")> { ... }
It also causes a problem when run with the IGJ checker:
import checkers.igj.quals.*;
public class Generics<T extends Generics.TestClass>
{
    public void test(@Mutable T test, @Immutable T test2)
    {
        test.value = 1;
        test2.m();
    }
    public static class TestClass
    {
        public int value;
        public void m() @Immutable
        {
        }
    }
}
to fail with:
tests/igj/Generics.java:7: Cannot (re-)assign value through the reference:
@Immutable T extends @ReadOnly TestClass
        test.value = 1;
            ^
1 error
or
tests/igj/Generics.java:8: call to m() not allowed on the given receiver.
found   : @Mutable TestClass
required: @Immutable TestClass
        test2.m();
               ^
1 error
randomly (depending on the order that annotations are processed in).
-- 
Artemus Harper
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.csail.mit.edu/mailman/private/checkers/attachments/20080906/4299059c/attachment.htm 
    
    
More information about the checkers
mailing list