Allow caret syntax for sdk constraints (#3672)

diff --git a/lib/src/validator/sdk_constraint.dart b/lib/src/validator/sdk_constraint.dart
index 736876b..9dc084e 100644
--- a/lib/src/validator/sdk_constraint.dart
+++ b/lib/src/validator/sdk_constraint.dart
@@ -35,21 +35,6 @@
   Future validate() async {
     final dartConstraint = _sdkConstraintFromPubspecYaml();
     if (dartConstraint is VersionRange) {
-      if (dartConstraint.toString().startsWith('^')) {
-        var dartConstraintWithoutCaret = VersionRange(
-            min: dartConstraint.min,
-            max: dartConstraint.max,
-            includeMin: dartConstraint.includeMin,
-            includeMax: dartConstraint.includeMax);
-        errors.add(
-            "^ version constraints aren't allowed for SDK constraints since "
-            "older versions of pub don't support them.\n"
-            'Expand it manually instead:\n'
-            '\n'
-            'environment:\n'
-            '  sdk: "$dartConstraintWithoutCaret"');
-      }
-
       if (dartConstraint.max == null) {
         errors.add(
             'Published packages should have an upper bound constraint on the '
diff --git a/test/validator/sdk_constraint_test.dart b/test/validator/sdk_constraint_test.dart
index 7e82aef..297b872 100644
--- a/test/validator/sdk_constraint_test.dart
+++ b/test/validator/sdk_constraint_test.dart
@@ -25,6 +25,12 @@
       await expectValidation(sdkConstraint);
     });
 
+    test('has an SDK constraint with ^', () async {
+      await d.dir(
+          appPath, [d.libPubspec('test_pkg', '1.0.0', sdk: '^1.8.0')]).create();
+      await expectValidation(sdkConstraint);
+    });
+
     test('depends on a pre-release Dart SDK from a pre-release', () async {
       await d.dir(appPath, [
         d.libPubspec('test_pkg', '1.0.0-dev.1', sdk: '>=1.8.0-dev.1 <2.0.0')
@@ -60,13 +66,6 @@
   });
 
   group('should consider a package invalid if it', () {
-    test('has an SDK constraint with ^', () async {
-      await d.dir(
-          appPath, [d.libPubspec('test_pkg', '1.0.0', sdk: '^1.8.0')]).create();
-      await expectValidation(sdkConstraint,
-          errors: anyElement(contains('">=1.8.0 <2.0.0"')));
-    });
-
     test('has no upper bound SDK constraint', () async {
       await d.dir(appPath,
           [d.libPubspec('test_pkg', '1.0.0', sdk: '>=1.8.0')]).create();