Skip to content

Nullness checker rejects valid program #428

@GoogleCodeExporter

Description

@GoogleCodeExporter
If javac accepts this code, the checker should also. (Unless it's a javac bug, 
but I don't think it is.)

Tested with jenkins build #272.

=== Test.java ===
import java.util.List;

interface I<T extends Number> {}

class Test {
  void m(List<I<? extends Object>> is) {
    I<?> i = is.get(0);
  }
}
===

$ ./checker/bin/javac  ~/Test.java
... builds successfully

$ ./checker/bin/javac -processor 
org.checkerframework.checker.nullness.NullnessChecker ~/Test.java
/usr/local/google/home/cushon/Test.java:7: error: 
[assignment.type.incompatible] incompatible types in assignment.
    I<?> i = is.get(0);
                   ^
  found   : I<?[ extends Object super Void]>
  required: I<?[ extends Number super Void]>
1 error

Original issue reported on code.google.com by cus...@google.com on 14 Apr 2015 at 6:06

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions