// Test case for Issue 906
// https://github.com/typetools/checker-framework/issues/906
/** @author Michael Grafl */
public class Issue906 {
  @SuppressWarnings("unchecked")
  public <B, A extends B> void start(A a, Class<B> cb) {
    // :: error: (dereference.of.nullable)
    Class<? extends A> c = (Class<? extends A>) a.getClass();
    x(a, c);
  }

  private <C, B extends C> void x(B a, Class<? extends B> c) {}
}
