remove `AstBuilder.enableNonNullable`

Change-Id: Ifb7e049115297a34ed95a974b0a1e71540b54ce8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/367148
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
diff --git a/pkg/analyzer/lib/src/fasta/ast_builder.dart b/pkg/analyzer/lib/src/fasta/ast_builder.dart
index b7a04b5..3a2d1db 100644
--- a/pkg/analyzer/lib/src/fasta/ast_builder.dart
+++ b/pkg/analyzer/lib/src/fasta/ast_builder.dart
@@ -8,7 +8,6 @@
         Message,
         MessageCode,
         codeBuiltInIdentifierInDeclaration,
-        messageAbstractClassMember,
         messageAbstractLateField,
         messageAbstractStaticField,
         messageConstConstructorWithBody,
@@ -16,7 +15,6 @@
         messageConstructorWithTypeParameters,
         messageDirectiveAfterDeclaration,
         messageExpectedStatement,
-        messageExternalField,
         messageExternalLateField,
         messageFieldInitializerOutsideConstructor,
         messageIllegalAssignmentToNonAssignable,
@@ -110,9 +108,6 @@
 
   bool parseFunctionBodies = true;
 
-  /// `true` if non-nullable behavior is enabled.
-  final bool enableNonNullable;
-
   /// `true` if triple-shift behavior is enabled
   final bool enableTripleShift;
 
@@ -162,7 +157,6 @@
       this._featureSet, this._lineInfo,
       [Uri? uri])
       : errorReporter = FastaErrorReporter(errorReporter),
-        enableNonNullable = _featureSet.isEnabled(Feature.non_nullable),
         enableTripleShift = _featureSet.isEnabled(Feature.triple_shift),
         enableNonFunctionTypeAliases =
             _featureSet.isEnabled(Feature.nonfunction_type_aliases),
@@ -1238,25 +1232,17 @@
     debugEvent("Fields");
 
     if (abstractToken != null) {
-      if (!enableNonNullable) {
+      if (staticToken != null) {
         handleRecoverableError(
-            messageAbstractClassMember, abstractToken, abstractToken);
-      } else {
-        if (staticToken != null) {
-          handleRecoverableError(
-              messageAbstractStaticField, abstractToken, abstractToken);
-        }
-        if (lateToken != null) {
-          handleRecoverableError(
-              messageAbstractLateField, abstractToken, abstractToken);
-        }
+            messageAbstractStaticField, abstractToken, abstractToken);
+      }
+      if (lateToken != null) {
+        handleRecoverableError(
+            messageAbstractLateField, abstractToken, abstractToken);
       }
     }
     if (externalToken != null) {
-      if (!enableNonNullable) {
-        handleRecoverableError(
-            messageExternalField, externalToken, externalToken);
-      } else if (lateToken != null) {
+      if (lateToken != null) {
         handleRecoverableError(
             messageExternalLateField, externalToken, externalToken);
       }
@@ -1858,12 +1844,6 @@
     var keyword = modifiers?.finalConstOrVarKeyword;
     var covariantKeyword = modifiers?.covariantKeyword;
     var requiredKeyword = modifiers?.requiredToken;
-    if (!enableNonNullable && requiredKeyword != null) {
-      _reportFeatureNotEnabled(
-        feature: ExperimentalFeatures.non_nullable,
-        startToken: requiredKeyword,
-      );
-    }
 
     var metadata = pop() as List<AnnotationImpl>?;
     var comment = _findComment(metadata,
@@ -2089,9 +2069,6 @@
   void endFunctionType(Token functionToken, Token? questionMark) {
     assert(optional('Function', functionToken));
     debugEvent("FunctionType");
-    if (!enableNonNullable) {
-      reportErrorIfNullableType(questionMark);
-    }
 
     var parameters = pop() as FormalParameterListImpl;
     var returnType = pop() as TypeAnnotationImpl?;
@@ -2110,9 +2087,6 @@
   @override
   void endFunctionTypedFormalParameter(Token nameToken, Token? question) {
     debugEvent("FunctionTypedFormalParameter");
-    if (!enableNonNullable) {
-      reportErrorIfNullableType(question);
-    }
 
     var formalParameters = pop() as FormalParameterListImpl;
     var returnType = pop() as TypeAnnotationImpl?;
@@ -3362,10 +3336,7 @@
     debugEvent("TopLevelFields");
 
     if (externalToken != null) {
-      if (!enableNonNullable) {
-        handleRecoverableError(
-            messageExternalField, externalToken, externalToken);
-      } else if (lateToken != null) {
+      if (lateToken != null) {
         handleRecoverableError(
             messageExternalLateField, externalToken, externalToken);
       }
@@ -4537,15 +4508,10 @@
   @override
   void handleIndexedExpression(
       Token? question, Token leftBracket, Token rightBracket) {
-    assert(optional('[', leftBracket) ||
-        (enableNonNullable && optional('?.[', leftBracket)));
+    assert(optional('[', leftBracket) || optional('?.[', leftBracket));
     assert(optional(']', rightBracket));
     debugEvent("IndexedExpression");
 
-    if (!enableNonNullable) {
-      reportErrorIfNullableType(question);
-    }
-
     var index = pop() as ExpressionImpl;
     var target = pop() as ExpressionImpl?;
     reportErrorIfSuper(index);
@@ -5025,19 +4991,13 @@
   @override
   void handleNonNullAssertExpression(Token bang) {
     debugEvent('NonNullAssertExpression');
-    if (!enableNonNullable) {
-      _reportFeatureNotEnabled(
-        feature: ExperimentalFeatures.non_nullable,
-        startToken: bang,
-      );
-    } else {
-      push(
-        PostfixExpressionImpl(
-          operand: pop() as ExpressionImpl,
-          operator: bang,
-        ),
-      );
-    }
+
+    push(
+      PostfixExpressionImpl(
+        operand: pop() as ExpressionImpl,
+        operator: bang,
+      ),
+    );
   }
 
   @override
@@ -5549,9 +5509,6 @@
   @override
   void handleType(Token beginToken, Token? question) {
     debugEvent("Type");
-    if (!enableNonNullable) {
-      reportErrorIfNullableType(question);
-    }
 
     var arguments = pop() as TypeArgumentListImpl?;
     var name = pop() as IdentifierImpl;
diff --git a/pkg/analyzer/test/dart/analysis/utilities_test.dart b/pkg/analyzer/test/dart/analysis/utilities_test.dart
index 31a6670..6ee9297 100644
--- a/pkg/analyzer/test/dart/analysis/utilities_test.dart
+++ b/pkg/analyzer/test/dart/analysis/utilities_test.dart
@@ -13,8 +13,6 @@
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
-import '../../util/feature_sets.dart';
-
 void main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(UtilitiesTest);
@@ -88,25 +86,6 @@
         throwsA(const TypeMatcher<ArgumentError>()));
   }
 
-  test_parseFile_featureSet_language_2_9() {
-    String content = '''
-int? f() => 1;
-''';
-    var featureSet = FeatureSets.language_2_9;
-    expect(featureSet.isEnabled(Feature.non_nullable), isFalse);
-    ParseStringResult result = _withMemoryFile(
-        content,
-        (resourceProvider, path) => parseFile(
-            path: path,
-            resourceProvider: resourceProvider,
-            throwIfDiagnostics: false,
-            featureSet: featureSet));
-    expect(result.content, content);
-    expect(result.errors, hasLength(1));
-    expect(result.lineInfo, isNotNull);
-    expect(result.unit.toString(), equals('int? f() => 1;'));
-  }
-
   test_parseFile_featureSet_language_latest() {
     String content = '''
 int? f() => 1;
@@ -174,20 +153,6 @@
         throwsA(const TypeMatcher<ArgumentError>()));
   }
 
-  test_parseString_featureSet_nnbd_off() {
-    String content = '''
-int? f() => 1;
-''';
-    var featureSet = FeatureSets.language_2_9;
-    expect(featureSet.isEnabled(Feature.non_nullable), isFalse);
-    ParseStringResult result = parseString(
-        content: content, throwIfDiagnostics: false, featureSet: featureSet);
-    expect(result.content, content);
-    expect(result.errors, hasLength(1));
-    expect(result.lineInfo, isNotNull);
-    expect(result.unit.toString(), equals('int? f() => 1;'));
-  }
-
   test_parseString_featureSet_nnbd_on() {
     String content = '''
 int? f() => 1;
diff --git a/pkg/analyzer/test/generated/formal_parameter_parser_test.dart b/pkg/analyzer/test/generated/formal_parameter_parser_test.dart
index a6e157d..7cc7bb3 100644
--- a/pkg/analyzer/test/generated/formal_parameter_parser_test.dart
+++ b/pkg/analyzer/test/generated/formal_parameter_parser_test.dart
@@ -9,7 +9,6 @@
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
 import '../util/ast_type_matchers.dart';
-import '../util/feature_sets.dart';
 import 'parser_test_base.dart';
 import 'test_support.dart';
 
@@ -74,58 +73,6 @@
     expect(defaultParameter.isNamed, isTrue);
   }
 
-  void test_functionTyped_named_nullable_disabled() {
-    ParameterKind kind = ParameterKind.NAMED;
-    var defaultParameter = parseFormalParameter('a()? : null', kind,
-            featureSet: FeatureSets.language_2_9,
-            errorCodes: [ParserErrorCode.EXPERIMENT_NOT_ENABLED])
-        as DefaultFormalParameter;
-    var functionParameter =
-        defaultParameter.parameter as FunctionTypedFormalParameter;
-    expect(functionParameter.returnType, isNull);
-    expect(functionParameter.name, isNotNull);
-    expect(functionParameter.typeParameters, isNull);
-    expect(functionParameter.parameters, isNotNull);
-    expect(functionParameter.isNamed, isTrue);
-    expect(functionParameter.question, isNotNull);
-    expect(defaultParameter.separator, isNotNull);
-    expect(defaultParameter.defaultValue, isNotNull);
-    expect(defaultParameter.isNamed, isTrue);
-  }
-
-  void test_functionTyped_positional_nullable_disabled() {
-    ParameterKind kind = ParameterKind.POSITIONAL;
-    var defaultParameter = parseFormalParameter('a()? = null', kind,
-            featureSet: FeatureSets.language_2_9,
-            errorCodes: [ParserErrorCode.EXPERIMENT_NOT_ENABLED])
-        as DefaultFormalParameter;
-    var functionParameter =
-        defaultParameter.parameter as FunctionTypedFormalParameter;
-    expect(functionParameter.returnType, isNull);
-    expect(functionParameter.name, isNotNull);
-    expect(functionParameter.typeParameters, isNull);
-    expect(functionParameter.parameters, isNotNull);
-    expect(functionParameter.isOptionalPositional, isTrue);
-    expect(functionParameter.question, isNotNull);
-    expect(defaultParameter.separator, isNotNull);
-    expect(defaultParameter.defaultValue, isNotNull);
-    expect(defaultParameter.isOptionalPositional, isTrue);
-  }
-
-  void test_functionTyped_required_nullable_disabled() {
-    ParameterKind kind = ParameterKind.REQUIRED;
-    var functionParameter = parseFormalParameter('a()?', kind,
-            featureSet: FeatureSets.language_2_9,
-            errorCodes: [ParserErrorCode.EXPERIMENT_NOT_ENABLED])
-        as FunctionTypedFormalParameter;
-    expect(functionParameter.returnType, isNull);
-    expect(functionParameter.name, isNotNull);
-    expect(functionParameter.typeParameters, isNull);
-    expect(functionParameter.parameters, isNotNull);
-    expect(functionParameter.isRequiredPositional, isTrue);
-    expect(functionParameter.question, isNotNull);
-  }
-
   void test_parseConstructorParameter_this() {
     parseCompilationUnit('''
 class C {
diff --git a/pkg/analyzer/test/generated/nnbd_parser_test.dart b/pkg/analyzer/test/generated/nnbd_parser_test.dart
index 716418c..641174f 100644
--- a/pkg/analyzer/test/generated/nnbd_parser_test.dart
+++ b/pkg/analyzer/test/generated/nnbd_parser_test.dart
@@ -198,12 +198,6 @@
     parseCompilationUnit('D? foo(X? x) { X ? x2 = x : y; }');
   }
 
-  void test_enableNonNullable_false() {
-    parseCompilationUnit('main() { x is String? ? (x + y) : z; }',
-        errors: [expectedError(ParserErrorCode.EXPERIMENT_NOT_ENABLED, 20, 1)],
-        featureSet: FeatureSets.language_2_9);
-  }
-
   void test_for() {
     parseCompilationUnit('main() { for(int x = 0; x < 7; ++x) { } }');
   }
@@ -224,12 +218,6 @@
     parseCompilationUnit('main() { for(int? x in [7, null]) { } }');
   }
 
-  void test_functionTypedFormalParameter_nullable_disabled() {
-    parseCompilationUnit('void f(void p()?) {}',
-        errors: [expectedError(ParserErrorCode.EXPERIMENT_NOT_ENABLED, 15, 1)],
-        featureSet: FeatureSets.language_2_9);
-  }
-
   test_fuzz_38113() async {
     // https://github.com/dart-lang/sdk/issues/38113
     parseCompilationUnit(r'+t{{r?this}}', errors: [
@@ -282,28 +270,6 @@
     expect(expression.leftBracket.endGroup, expression.rightBracket);
   }
 
-  void test_indexed_nullAware_optOut() {
-    CompilationUnit unit = parseCompilationUnit('''
-// @dart = 2.2
-main() { a?[7]; }''',
-        errors: [expectedError(ParserErrorCode.EXPERIMENT_NOT_ENABLED, 25, 1)]);
-    var method = unit.declarations[0] as FunctionDeclaration;
-    var body = method.functionExpression.body as BlockFunctionBody;
-    var statement = body.block.statements[0] as ExpressionStatement;
-    var expression = statement.expression as IndexExpressionImpl;
-    expect(expression.target!.toSource(), 'a');
-    expect(expression.question, isNotNull);
-    expect(expression.leftBracket.lexeme, '[');
-    expect(expression.rightBracket.lexeme, ']');
-    expect(expression.leftBracket.endGroup, expression.rightBracket);
-  }
-
-  void test_indexExpression_nullable_disabled() {
-    parseCompilationUnit('main(a) { a?[0]; }',
-        errors: [expectedError(ParserErrorCode.EXPERIMENT_NOT_ENABLED, 11, 1)],
-        featureSet: FeatureSets.language_2_9);
-  }
-
   void test_is_nullable() {
     CompilationUnit unit =
         parseCompilationUnit('main() { x is String? ? (x + y) : z; }');
@@ -337,13 +303,6 @@
     expect(elseExpression, isSimpleIdentifier);
   }
 
-  void test_is_nullable_parenthesis_optOut() {
-    parseCompilationUnit('''
-// @dart = 2.2
-main() { (x is String?) ? (x + y) : z; }
-''', errors: [expectedError(ParserErrorCode.EXPERIMENT_NOT_ENABLED, 36, 1)]);
-  }
-
   void test_late_as_identifier() {
     parseCompilationUnit('''
 class C {
@@ -541,21 +500,6 @@
     expect(expression.operator.lexeme, '!');
   }
 
-  void test_nullCheck_disabled() {
-    var unit = parseCompilationUnit('f(int? y) { var x = y!; }',
-        errors: [
-          expectedError(ParserErrorCode.EXPERIMENT_NOT_ENABLED, 5, 1),
-          expectedError(ParserErrorCode.EXPERIMENT_NOT_ENABLED, 21, 1),
-        ],
-        featureSet: FeatureSets.language_2_9);
-    var function = unit.declarations[0] as FunctionDeclaration;
-    var body = function.functionExpression.body as BlockFunctionBody;
-    var statement = body.block.statements[0] as VariableDeclarationStatement;
-    var identifier =
-        statement.variables.variables[0].initializer as SimpleIdentifier;
-    expect(identifier.name, 'y');
-  }
-
   void test_nullCheckAfterGetterAccess() {
     parseCompilationUnit('f() { var x = g.x!.y + 7; }');
   }
@@ -603,15 +547,6 @@
     parseCompilationUnit('f(int? y) { var x = y! + 7; }');
   }
 
-  void test_nullCheckInExpression_disabled() {
-    parseCompilationUnit('f(int? y) { var x = y! + 7; }',
-        errors: [
-          expectedError(ParserErrorCode.EXPERIMENT_NOT_ENABLED, 5, 1),
-          expectedError(ParserErrorCode.EXPERIMENT_NOT_ENABLED, 21, 1),
-        ],
-        featureSet: FeatureSets.language_2_9);
-  }
-
   void test_nullCheckMethodResult() {
     parseCompilationUnit('f() { var x = g.m()! + 7; }');
   }
@@ -743,12 +678,6 @@
     expect(target.operand.toSource(), "foo");
   }
 
-  void test_nullCheckOnLiteral_disabled() {
-    parseCompilationUnit('f() { var x = 0!; }',
-        errors: [expectedError(ParserErrorCode.EXPERIMENT_NOT_ENABLED, 15, 1)],
-        featureSet: FeatureSets.language_2_9);
-  }
-
   void test_nullCheckOnLiteralDouble() {
     // Issues like this should be caught during later analysis
     parseCompilationUnit('f() { var x = 1.2!; }');
@@ -822,12 +751,6 @@
     parseCompilationUnit('f(Point p) { var x = p.y! + 7; }');
   }
 
-  void test_nullCheckOnValue_disabled() {
-    parseCompilationUnit('f(Point p) { var x = p.y! + 7; }',
-        errors: [expectedError(ParserErrorCode.EXPERIMENT_NOT_ENABLED, 24, 1)],
-        featureSet: FeatureSets.language_2_9);
-  }
-
   void test_nullCheckParenthesizedExpression() {
     parseCompilationUnit('f(int? y) { var x = (y)! + 7; }');
   }
@@ -867,10 +790,4 @@
     var innerExpression = outerExpression.operand as PostfixExpression;
     expect(innerExpression.operator.type, TokenType.PLUS_PLUS);
   }
-
-  void test_typeName_nullable_disabled() {
-    parseCompilationUnit('int? x;',
-        errors: [expectedError(ParserErrorCode.EXPERIMENT_NOT_ENABLED, 3, 1)],
-        featureSet: FeatureSets.language_2_9);
-  }
 }