Remove support for PUB_ALLOW_PRERELEASE_SDK (#3612)

diff --git a/lib/src/entrypoint.dart b/lib/src/entrypoint.dart
index 7a1527d..937d830 100644
--- a/lib/src/entrypoint.dart
+++ b/lib/src/entrypoint.dart
@@ -347,24 +347,6 @@
       }
     }
 
-    // Log once about all overridden packages.
-    if (warnAboutPreReleaseSdkOverrides) {
-      var overriddenPackages = (result.pubspecs.values
-              .where((pubspec) => pubspec.dartSdkWasOverridden)
-              .map((pubspec) => pubspec.name)
-              .toList()
-            ..sort())
-          .join(', ');
-      if (overriddenPackages.isNotEmpty) {
-        log.message(log.yellow(
-            'Overriding the upper bound Dart SDK constraint to <=${sdk.version} '
-            'for the following packages:\n\n$overriddenPackages\n\n'
-            'To disable this you can set the PUB_ALLOW_PRERELEASE_SDK system '
-            'environment variable to `false`, or you can silence this message '
-            'by setting it to `quiet`.'));
-      }
-    }
-
     // We have to download files also with --dry-run to ensure we know the
     // archive hashes for downloaded files.
     final newLockFile = await result.downloadCachedPackages(cache);
diff --git a/lib/src/pubspec.dart b/lib/src/pubspec.dart
index 69b5557..8ac8023 100644
--- a/lib/src/pubspec.dart
+++ b/lib/src/pubspec.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import 'dart:io';
-
 import 'package:collection/collection.dart' hide mapMap;
 import 'package:path/path.dart' as path;
 import 'package:pub_semver/pub_semver.dart';
@@ -13,12 +11,9 @@
 import 'exceptions.dart';
 import 'io.dart';
 import 'language_version.dart';
-import 'log.dart';
 import 'package_name.dart';
 import 'pubspec_parse.dart';
-import 'sdk.dart';
 import 'system_cache.dart';
-import 'utils.dart';
 
 export 'pubspec_parse.dart' hide PubspecBase;
 
@@ -28,35 +23,6 @@
 final VersionRange _defaultUpperBoundSdkConstraint =
     VersionConstraint.parse('<2.0.0') as VersionRange;
 
-/// Whether or not to allow the pre-release SDK for packages that have an
-/// upper bound Dart SDK constraint of <2.0.0.
-///
-/// If enabled then a Dart SDK upper bound of <2.0.0 is always converted to
-/// <2.0.0-dev.infinity.
-///
-/// This has a default value of `true` but can be overridden with the
-/// PUB_ALLOW_PRERELEASE_SDK system environment variable.
-bool get _allowPreReleaseSdk => _allowPreReleaseSdkValue != 'false';
-
-/// The value of the PUB_ALLOW_PRERELEASE_SDK environment variable, defaulted
-/// to `true`.
-final String _allowPreReleaseSdkValue = () {
-  var value =
-      Platform.environment['PUB_ALLOW_PRERELEASE_SDK']?.toLowerCase() ?? 'true';
-  if (!['true', 'quiet', 'false'].contains(value)) {
-    warning(yellow('''
-The environment variable PUB_ALLOW_PRERELEASE_SDK is set as `$value`.
-The expected value is either `true`, `quiet` (true but no logging), or `false`.
-Using a default value of `true`.
-'''));
-    value = 'true';
-  }
-  return value;
-}();
-
-/// Whether or not to warn about pre-release SDK overrides.
-bool get warnAboutPreReleaseSdkOverrides => _allowPreReleaseSdkValue != 'quiet';
-
 /// The parsed contents of a pubspec file.
 ///
 /// The fields of a pubspec are, for the most part, validated when they're first
@@ -120,9 +86,6 @@
 
   Map<String, PackageRange>? _devDependencies;
 
-  /// The Dart sdk version this is parsed against.
-  final Version _dartSdkVersion;
-
   /// The dependency constraints that this package overrides when it is the
   /// root package.
   ///
@@ -178,55 +141,11 @@
   /// pubspec.
   final bool _includeDefaultSdkConstraint;
 
-  /// Whether or not the SDK version was overridden from <2.0.0 to
-  /// <2.0.0-dev.infinity.
-  bool get dartSdkWasOverridden => _dartSdkWasOverriddenToAllowPrerelease;
-  bool _dartSdkWasOverriddenToAllowPrerelease = false;
-
-  /// Whether or not we should override [sdkConstraint] to be <= the user's
-  /// current SDK version.
-  ///
-  /// This is true if the following conditions are met:
-  ///
-  ///   - [_allowPreReleaseSdk] is `true`
-  ///   - The user's current SDK is a pre-release version.
-  ///   - The original [sdkConstraint] max version is exclusive (`includeMax`
-  ///     is `false`).
-  ///   - The original [sdkConstraint] is not a pre-release version.
-  ///   - The original [sdkConstraint] matches the exact same major, minor, and
-  ///     patch versions as the user's current SDK.
-  bool _shouldEnableCurrentSdk(VersionRange sdkConstraint) {
-    if (!_allowPreReleaseSdk) return false;
-    if (!_dartSdkVersion.isPreRelease) return false;
-    if (sdkConstraint.includeMax) return false;
-    var minSdkConstraint = sdkConstraint.min;
-    if (minSdkConstraint != null &&
-        minSdkConstraint.isPreRelease &&
-        equalsIgnoringPreRelease(sdkConstraint.min!, _dartSdkVersion)) {
-      return false;
-    }
-    var maxSdkConstraint = sdkConstraint.max;
-    if (maxSdkConstraint == null) return false;
-    if (maxSdkConstraint.max.isPreRelease &&
-        !maxSdkConstraint.isFirstPreRelease) {
-      return false;
-    }
-    return equalsIgnoringPreRelease(maxSdkConstraint, _dartSdkVersion);
-  }
-
   SdkConstraint _interpretDartSdkConstraint(
     VersionConstraint originalConstraint, {
     required VersionConstraint? defaultUpperBoundConstraint,
   }) {
     VersionConstraint constraint = originalConstraint;
-    if (constraint is VersionRange && _shouldEnableCurrentSdk(constraint)) {
-      _dartSdkWasOverriddenToAllowPrerelease = true;
-      constraint = VersionRange(
-          min: constraint.min,
-          includeMin: constraint.includeMin,
-          max: _dartSdkVersion,
-          includeMax: true);
-    }
     if (defaultUpperBoundConstraint != null &&
         constraint is VersionRange &&
         constraint.max == null &&
@@ -370,7 +289,6 @@
     Map? fields,
     SourceRegistry? sources,
     Map<String, SdkConstraint>? sdkConstraints,
-    Version? dartSdkVersion,
   })  : _dependencies = dependencies == null
             ? null
             : Map.fromIterable(dependencies, key: (range) => range.name),
@@ -386,7 +304,6 @@
         _sources = sources ??
             ((String? name) => throw StateError('No source registry given')),
         _overridesFileFields = null,
-        _dartSdkVersion = dartSdkVersion ?? sdk.version,
         super(
           fields == null ? YamlMap() : YamlMap.wrap(fields),
           name: name,
@@ -406,11 +323,9 @@
     YamlMap? overridesFields,
     String? expectedName,
     Uri? location,
-    Version? dartSdkVersion,
   })  : _overridesFileFields = overridesFields,
         _includeDefaultSdkConstraint = true,
         _givenSdkConstraints = null,
-        _dartSdkVersion = dartSdkVersion ?? sdk.version,
         super(fields is YamlMap
             ? fields
             : YamlMap.wrap(fields, sourceUrl: location)) {
@@ -436,7 +351,6 @@
     Uri? location,
     String? overridesFileContents,
     Uri? overridesLocation,
-    Version? dartSdkVersion,
   }) {
     late final YamlMap pubspecMap;
     YamlMap? overridesFileMap;
@@ -456,7 +370,6 @@
       overridesFields: overridesFileMap,
       expectedName: expectedName,
       location: location,
-      dartSdkVersion: dartSdkVersion,
     );
   }
 
diff --git a/test/validator/dependency_test.dart b/test/validator/dependency_test.dart
index b3adc34..81694dd 100644
--- a/test/validator/dependency_test.dart
+++ b/test/validator/dependency_test.dart
@@ -506,13 +506,13 @@
       await fuschiaPackage('foo', sdk: '>=0.0.0 <3.0.0').create();
 
       await package(
-        sdk: '>=2.0.0-dev.50.0 <2.0.1',
+        sdk: '>=2.0.0-dev.50.0 <2.0.2',
         deps: {
           'foo': {'sdk': 'fuchsia', 'version': '>=1.2.3 <2.0.0'}
         },
       ).create();
 
-      await expectValidationError('sdk: ">=2.0.0 <2.0.1"', environment: {
+      await expectValidationError('sdk: ">=2.0.0 <2.0.2"', environment: {
         'FUCHSIA_DART_SDK_ROOT': path.join(d.sandbox, 'fuchsia'),
         '_PUB_TEST_SDK_VERSION': '2.0.1-dev.51.0',
       });
diff --git a/test/version_solver_test.dart b/test/version_solver_test.dart
index 8ade3f6..a2cbacc 100644
--- a/test/version_solver_test.dart
+++ b/test/version_solver_test.dart
@@ -1089,299 +1089,6 @@
     await d.appDir({'foo': 'any'}).create();
     await expectResolves(result: {'foo': '2.0.0', 'bar': '2.0.0'}, tries: 2);
   });
-
-  group('pre-release overrides', () {
-    group('for the root package', () {
-      test('allow 2.0.0-dev by default', () async {
-        await d.dir(appPath, [
-          d.pubspec({
-            'name': 'myapp',
-            'environment': {
-              'sdk': '>=1.0.0 <2.0.0',
-            },
-          }),
-        ]).create();
-
-        await expectResolves(
-            environment: {'_PUB_TEST_SDK_VERSION': '2.0.0-dev.99'});
-      });
-
-      test('allow pre-release versions of the upper bound', () async {
-        await d.dir(appPath, [
-          d.pubspec({
-            'name': 'myapp',
-            'environment': {'sdk': '>=1.0.0 <1.2.3'}
-          })
-        ]).create();
-
-        await expectResolves(
-            environment: {'_PUB_TEST_SDK_VERSION': '1.2.3-dev.1.0'},
-            output: allOf(contains('PUB_ALLOW_PRERELEASE_SDK'),
-                contains('<=1.2.3-dev.1.0'), contains('myapp')));
-      });
-    });
-
-    group('for a dependency', () {
-      test('disallow 2.0.0 by default', () async {
-        await d.dir('foo', [
-          d.rawPubspec({'name': 'foo'}),
-        ]).create();
-
-        await d.dir(appPath, [
-          d.pubspec({
-            'name': 'myapp',
-            'dependencies': {
-              'foo': {'path': '../foo'}
-            },
-            'environment': {
-              'sdk': '>=2.0.0-0 <3.0.0',
-            },
-          }),
-        ]).create();
-
-        await expectResolves(
-            environment: {'_PUB_TEST_SDK_VERSION': '2.0.0'},
-            error: equalsIgnoringWhitespace('''
-          The current Dart SDK version is 2.0.0.
-
-          Because myapp depends on foo from path which requires SDK version
-            <2.0.0, version solving failed.
-        '''));
-      });
-
-      test('allow 2.0.0-dev by default', () async {
-        await d.dir('foo', [
-          d.rawPubspec({'name': 'foo'})
-        ]).create();
-        await d.dir('bar', [
-          d.rawPubspec({'name': 'bar'})
-        ]).create();
-
-        await d.dir(appPath, [
-          d.pubspec({
-            'name': 'myapp',
-            'dependencies': {
-              'foo': {'path': '../foo'},
-              'bar': {'path': '../bar'},
-            },
-            'environment': {
-              'sdk': '>=1.0.0 <2.0.0',
-            },
-          })
-        ]).create();
-
-        await expectResolves(
-          environment: {'_PUB_TEST_SDK_VERSION': '2.0.0-dev.99'},
-          // Log output should mention the PUB_ALLOW_PRERELEASE_SDK environment
-          // variable and mention the foo and bar packages specifically.
-          output: allOf(contains('PUB_ALLOW_PRERELEASE_SDK'),
-              anyOf(contains('bar, foo'))),
-        );
-      });
-    });
-
-    test("don't log if PUB_ALLOW_PRERELEASE_SDK is quiet", () async {
-      await d.dir('foo', [
-        d.rawPubspec({'name': 'foo'})
-      ]).create();
-
-      await d.dir(appPath, [
-        d.pubspec({
-          'name': 'myapp',
-          'dependencies': {
-            'foo': {'path': '../foo'},
-          },
-          'environment': {
-            'sdk': '>=1.0.0 <2.0.0',
-          },
-        }),
-      ]).create();
-
-      await expectResolves(
-        environment: {
-          '_PUB_TEST_SDK_VERSION': '2.0.0-dev.99',
-          'PUB_ALLOW_PRERELEASE_SDK': 'quiet'
-        },
-        // Log output should not mention the PUB_ALLOW_RELEASE_SDK environment
-        // variable.
-        output: isNot(contains('PUB_ALLOW_PRERELEASE_SDK')),
-      );
-    });
-
-    test('are disabled if PUB_ALLOW_PRERELEASE_SDK is false', () async {
-      await d.dir('foo', [
-        d.pubspec({
-          'name': 'foo',
-          'environment': {
-            'sdk': '>=1.0.0 <2.0.0',
-          },
-        }),
-      ]).create();
-
-      await d.dir(appPath, [
-        d.pubspec({
-          'name': 'myapp',
-          'dependencies': {
-            'foo': {'path': '../foo'}
-          },
-          'environment': {
-            'sdk': '>=1.0.0 <3.0.0',
-          },
-        })
-      ]).create();
-
-      await expectResolves(environment: {
-        '_PUB_TEST_SDK_VERSION': '2.0.0-dev.99',
-        'PUB_ALLOW_PRERELEASE_SDK': 'false'
-      }, error: equalsIgnoringWhitespace('''
-        The current Dart SDK version is 2.0.0-dev.99.
-
-        Because myapp depends on foo from path which requires SDK version
-        >=1.0.0 <2.0.0, version solving failed.
-      '''));
-    });
-
-    group("don't apply if", () {
-      test('major SDK versions differ', () async {
-        await d.dir(appPath, [
-          d.pubspec({
-            'name': 'myapp',
-            'environment': {'sdk': '>=1.0.0 <2.2.3'}
-          })
-        ]).create();
-
-        await expectResolves(
-            environment: {'_PUB_TEST_SDK_VERSION': '1.2.3-dev.1.0'},
-            output: isNot(contains('PUB_ALLOW_PRERELEASE_SDK')));
-      });
-
-      test('minor SDK versions differ', () async {
-        await d.dir(appPath, [
-          d.pubspec({
-            'name': 'myapp',
-            'environment': {'sdk': '>=1.0.0 <1.3.3'}
-          })
-        ]).create();
-
-        await expectResolves(
-            environment: {'_PUB_TEST_SDK_VERSION': '1.2.3-dev.1.0'},
-            output: isNot(contains('PUB_ALLOW_PRERELEASE_SDK')));
-      });
-
-      test('patch SDK versions differ', () async {
-        await d.dir(appPath, [
-          d.pubspec({
-            'name': 'myapp',
-            'environment': {'sdk': '>=1.0.0 <1.2.4'}
-          })
-        ]).create();
-
-        await expectResolves(
-            environment: {'_PUB_TEST_SDK_VERSION': '1.2.3-dev.1.0'},
-            output: isNot(contains('PUB_ALLOW_PRERELEASE_SDK')));
-      });
-
-      test('SDK max is inclusive', () async {
-        await d.dir(appPath, [
-          d.pubspec({
-            'name': 'myapp',
-            'environment': {'sdk': '>=1.0.0 <=1.2.3'}
-          })
-        ]).create();
-
-        await expectResolves(
-            environment: {'_PUB_TEST_SDK_VERSION': '1.2.3-dev.1.0'},
-            output: isNot(contains('PUB_ALLOW_PRERELEASE_SDK')));
-      });
-
-      test("SDK isn't pre-release", () async {
-        await d.dir(appPath, [
-          d.pubspec({
-            'name': 'myapp',
-            'environment': {'sdk': '>=1.0.0 <1.2.3'}
-          })
-        ]).create();
-
-        await expectResolves(
-            environment: {'_PUB_TEST_SDK_VERSION': '1.2.3'},
-            error: equalsIgnoringWhitespace('''
-              The current Dart SDK version is 1.2.3.
-
-              Because myapp requires SDK version >=1.0.0 <1.2.3, version
-              solving failed.
-            '''));
-      });
-
-      test('upper bound is pre-release', () async {
-        await d.dir(appPath, [
-          d.pubspec({
-            'name': 'myapp',
-            'environment': {'sdk': '>=1.0.0 <1.2.3-dev.2.0'}
-          })
-        ]).create();
-
-        await expectResolves(
-            environment: {'_PUB_TEST_SDK_VERSION': '1.2.3-dev.1.0'},
-            output: isNot(contains('PUB_ALLOW_PRERELEASE_SDK')));
-      });
-
-      test('lower bound is pre-release and matches SDK', () async {
-        await d.dir(appPath, [
-          d.pubspec({
-            'name': 'myapp',
-            'environment': {'sdk': '>=1.2.3-dev.2.0 <1.2.3'}
-          })
-        ]).create();
-
-        await expectResolves(
-            environment: {'_PUB_TEST_SDK_VERSION': '1.2.3-dev.3.0'},
-            output: isNot(contains('PUB_ALLOW_PRERELEASE_SDK')));
-      });
-
-      test('upper bound has build identifier', () async {
-        await d.dir(appPath, [
-          d.pubspec({
-            'name': 'myapp',
-            'environment': {'sdk': '>=1.0.0 <1.2.3+1'}
-          })
-        ]).create();
-
-        await expectResolves(
-            environment: {'_PUB_TEST_SDK_VERSION': '1.2.3'},
-            output: isNot(contains('PUB_ALLOW_PRERELEASE_SDK')));
-      });
-    });
-
-    group('apply if', () {
-      test('upper bound is exclusive and matches SDK', () async {
-        await d.dir(appPath, [
-          d.pubspec({
-            'name': 'myapp',
-            'environment': {'sdk': '>=1.0.0 <1.2.3'}
-          })
-        ]).create();
-
-        await expectResolves(
-            environment: {'_PUB_TEST_SDK_VERSION': '1.2.3-dev.1.0'},
-            output: allOf(contains('PUB_ALLOW_PRERELEASE_SDK'),
-                contains('<=1.2.3-dev.1.0'), contains('myapp')));
-      });
-
-      test("lower bound is pre-release but doesn't match SDK", () async {
-        await d.dir(appPath, [
-          d.pubspec({
-            'name': 'myapp',
-            'environment': {'sdk': '>=1.0.0-dev.1.0 <1.2.3'}
-          })
-        ]).create();
-
-        await expectResolves(
-            environment: {'_PUB_TEST_SDK_VERSION': '1.2.3-dev.1.0'},
-            output: allOf(contains('PUB_ALLOW_PRERELEASE_SDK'),
-                contains('<=1.2.3-dev.1.0'), contains('myapp')));
-      });
-    });
-  });
 }
 
 void sdkConstraint() {