Fixes #528. Process Never in a special way
diff --git a/LanguageFeatures/nnbd/static_errors_A04_t18.dart b/LanguageFeatures/nnbd/static_errors_A04_t18.dart
index c05d30e..2faadf7 100644
--- a/LanguageFeatures/nnbd/static_errors_A04_t18.dart
+++ b/LanguageFeatures/nnbd/static_errors_A04_t18.dart
@@ -24,33 +24,49 @@
 typedef void Foo();
 class A {}
 void foo() {}
-Never never() {}
+dynamic getX() => null;
 
 class C1<T extends Object> {
   FutureOr<T> t1;
-  FutureOr<Never> n1;
   FutureOr<Function> f1;
   FutureOr<Foo> f2;
   FutureOr<A> a1;
   FutureOr<M> m1;
   FutureOr<FutureOr<A>> a2;
 
-  C1(FutureOr<T> t, FutureOr<Never> n, FutureOr<Function> f1, FutureOr<Foo> f2, FutureOr<A> a1, FutureOr<M> m1, FutureOr<FutureOr<A>> a2)
-      : this.t1 = t, this.n1 = n, this.f1 = f1, this.f2 = f2, this.a1 = a1, this.m1 = m1, this.a2 = a2 {}
+  C1(FutureOr<T> t, FutureOr<Function> f1, FutureOr<Foo> f2, FutureOr<A> a1, FutureOr<M> m1, FutureOr<FutureOr<A>> a2)
+      : this.t1 = t, this.f1 = f1, this.f2 = f2, this.a1 = a1, this.m1 = m1, this.a2 = a2 {}
 }
 
 class C2<T extends Object> {
   FutureOr<T> t1;
-  FutureOr<Never> n1;
   FutureOr<Function> f1;
   FutureOr<Foo> f2;
   FutureOr<A> a1;
   FutureOr<M> m1;
   FutureOr<FutureOr<A>> a2;
-  C2(this.t1, this.n1, this.f1, this.f2, this.a1, this.m1, this.a2);
+  C2(this.t1, this.f1, this.f2, this.a1, this.m1, this.a2);
 }
 
+class C3 {
+  FutureOr<Never> n1;
+
+  C3(FutureOr<Never> n) : n1 = n {}
+}
+
+class C4 {
+  FutureOr<Never> n1;
+
+  C4(this.n1);
+}
+
+
 main() {
-  new C1<String>("s", never(), foo, foo, A(), M(), A());
-  new C2<String>("s", never(), foo, foo, A(), M(), A());
+  new C1<String>("s", foo, foo, A(), M(), A());
+  new C2<String>("s", foo, foo, A(), M(), A());
+  var x = getX();
+  if (x is Never) {
+    new C3(x);
+    new C4(x);
+  }
 }