Legacy. Remove support for legacy types from TypeSystemImpl.

Change-Id: I101ecafbb9c802e12d4f825c04213c35b9ac208b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/355860
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/dart/element/type_system.dart b/pkg/analyzer/lib/src/dart/element/type_system.dart
index 0f533b1..e3af806 100644
--- a/pkg/analyzer/lib/src/dart/element/type_system.dart
+++ b/pkg/analyzer/lib/src/dart/element/type_system.dart
@@ -355,18 +355,6 @@
       }
     }
 
-    // * Else if T is R* and Null <: S then factor(R, S)
-    // * Else if T is R* then factor(R, S)*
-    if (T_nullability == NullabilitySuffix.star) {
-      var R = (T as TypeImpl).withNullability(NullabilitySuffix.none);
-      var factor_RS = factor(R, S) as TypeImpl;
-      if (isSubtypeOf(nullNone, S)) {
-        return factor_RS;
-      } else {
-        return factor_RS.withNullability(NullabilitySuffix.star);
-      }
-    }
-
     // * Else if T is FutureOr<R> and Future<R> <: S then factor(R, S)
     // * Else if T is FutureOr<R> and R <: S then factor(Future<R>, S)
     if (T is InterfaceType && T.isDartAsyncFutureOr) {
@@ -390,7 +378,6 @@
     }
 
     // if T is S? then flatten(T) = flatten(S)?
-    // if T is S* then flatten(T) = flatten(S)*
     final nullabilitySuffix = T.nullabilitySuffix;
     if (nullabilitySuffix != NullabilitySuffix.none) {
       final S = (T as TypeImpl).withNullability(NullabilitySuffix.none);
@@ -470,7 +457,6 @@
   /// See `#the-future-value-type-of-an-asynchronous-non-generator-function`
   DartType futureValueType(DartType T) {
     // futureValueType(`S?`) = futureValueType(`S`), for all `S`.
-    // futureValueType(`S*`) = futureValueType(`S`), for all `S`.
     if (T.nullabilitySuffix != NullabilitySuffix.none) {
       var S = (T as TypeImpl).withNullability(NullabilitySuffix.none);
       return futureValueType(S);
@@ -1099,24 +1085,6 @@
       return false;
     }
 
-    // MOREBOTTOM(T*, S*) = MOREBOTTOM(T, S)
-    if (T_nullability == NullabilitySuffix.star &&
-        S_nullability == NullabilitySuffix.star) {
-      var T2 = T_impl.withNullability(NullabilitySuffix.none);
-      var S2 = S_impl.withNullability(NullabilitySuffix.none);
-      return isMoreBottom(T2, S2);
-    }
-
-    // MOREBOTTOM(T, S*) = true
-    if (S_nullability == NullabilitySuffix.star) {
-      return true;
-    }
-
-    // MOREBOTTOM(T*, S) = false
-    if (T_nullability == NullabilitySuffix.star) {
-      return false;
-    }
-
     // Type parameters.
     if (T is TypeParameterTypeImpl && S is TypeParameterTypeImpl) {
       // We have eliminated the possibility that T_nullability or S_nullability
@@ -1205,24 +1173,6 @@
       return false;
     }
 
-    // MORETOP(T*, S*) = MORETOP(T, S)
-    if (T_nullability == NullabilitySuffix.star &&
-        S_nullability == NullabilitySuffix.star) {
-      var T2 = T_impl.withNullability(NullabilitySuffix.none);
-      var S2 = S_impl.withNullability(NullabilitySuffix.none);
-      return isMoreTop(T2, S2);
-    }
-
-    // MORETOP(T, S*) = true
-    if (S_nullability == NullabilitySuffix.star) {
-      return true;
-    }
-
-    // MORETOP(T*, S) = false
-    if (T_nullability == NullabilitySuffix.star) {
-      return false;
-    }
-
     // MORETOP(T?, S?) = MORETOP(T, S)
     if (T_nullability == NullabilitySuffix.question &&
         S_nullability == NullabilitySuffix.question) {
@@ -1288,16 +1238,14 @@
     var nullabilitySuffix = typeImpl.nullabilitySuffix;
 
     // NULL(Null) is true
-    // Also includes `Null?` and `Null*` from the rules below.
+    // Also includes `Null?` from the rules below.
     if (type.isDartCoreNull) {
       return true;
     }
 
     // NULL(T?) is true iff NULL(T) or BOTTOM(T)
-    // NULL(T*) is true iff NULL(T) or BOTTOM(T)
-    // Cases for `Null?` and `Null*` are already checked above.
-    if (nullabilitySuffix == NullabilitySuffix.question ||
-        nullabilitySuffix == NullabilitySuffix.star) {
+    // The case for `Null?` is already checked above.
+    if (nullabilitySuffix == NullabilitySuffix.question) {
       var T = typeImpl.withNullability(NullabilitySuffix.none);
       return isBottom(T);
     }
@@ -1409,9 +1357,7 @@
     var nullabilitySuffix = typeImpl.nullabilitySuffix;
 
     // TOP(T?) is true iff TOP(T) or OBJECT(T)
-    // TOP(T*) is true iff TOP(T) or OBJECT(T)
-    if (nullabilitySuffix == NullabilitySuffix.question ||
-        nullabilitySuffix == NullabilitySuffix.star) {
+    if (nullabilitySuffix == NullabilitySuffix.question) {
       var T = typeImpl.withNullability(NullabilitySuffix.none);
       return isTop(T) || isObject(T);
     }
@@ -2179,19 +2125,9 @@
       return NullabilitySuffix.question;
     }
 
-    if (nullabilityOfType == NullabilitySuffix.star &&
-        nullabilityOfBound == NullabilitySuffix.none) {
-      return NullabilitySuffix.star;
-    }
-
     // Intersection with a non-nullable type always yields a non-nullable type,
     // as it's the most restrictive kind of types.
-    if (nullabilityOfType == NullabilitySuffix.none ||
-        nullabilityOfBound == NullabilitySuffix.none) {
-      return NullabilitySuffix.none;
-    }
-
-    return NullabilitySuffix.star;
+    return NullabilitySuffix.none;
   }
 }