Dart VM version: 2.9.0-16.0.dev (dev) (Tue Jun 16 10:35:10 2020 +0200) on "windows_x64" Here is a source code example: ``` dart class A<T extends A<T>> {} main() { A<Object?> a1; A<Object> a2; A<A<Object?>> a3; A<A<Object>> a4; } ``` Dart passes with this with nnbd enabled. Object is not a top type with null-safety enabled, so actually dart should throw a compile error for `a2` and `a4` here. See also Issue #42415.