Fix version number strings to always include a patch number.

The version parser we use (Version.parse from package:pub_sumver)
doesn't support `major.minor` formatter version strings.

Change-Id: Ie6bf59d0f59d24d036c037d079494eb980e73212
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99886
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
diff --git a/pkg/analyzer/lib/src/dart/analysis/experiments.dart b/pkg/analyzer/lib/src/dart/analysis/experiments.dart
index ebd988d..8a5f2f1 100644
--- a/pkg/analyzer/lib/src/dart/analysis/experiments.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/experiments.dart
@@ -111,7 +111,7 @@
       IsEnabledByDefault.bogus_enabled,
       IsExpired.bogus_enabled,
       null,
-      firstSupportedVersion: '1.0');
+      firstSupportedVersion: '1.0.0');
 }
 
 /// A representation of the set of experiments that are active and whether they
diff --git a/pkg/analyzer/test/src/dart/analysis/experiments_test.dart b/pkg/analyzer/test/src/dart/analysis/experiments_test.dart
index 597430b..cb8ba93 100644
--- a/pkg/analyzer/test/src/dart/analysis/experiments_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/experiments_test.dart
@@ -52,7 +52,7 @@
   test_fromStrings_default_values() {
     knownFeatures['a'] = ExperimentalFeature(0, 'a', false, false, 'a');
     knownFeatures['b'] = ExperimentalFeature(1, 'b', true, false, 'b',
-        firstSupportedVersion: '1.0');
+        firstSupportedVersion: '1.0.0');
     expect(getFlags(fromStrings([])), [false, true]);
   }
 
@@ -63,7 +63,7 @@
 
   test_fromStrings_disable_enabled_feature() {
     knownFeatures['a'] = ExperimentalFeature(0, 'a', true, false, 'a',
-        firstSupportedVersion: '1.0');
+        firstSupportedVersion: '1.0.0');
     expect(getFlags(fromStrings(['no-a'])), [false]);
   }
 
@@ -74,14 +74,14 @@
 
   test_fromStrings_enable_enabled_feature() {
     knownFeatures['a'] = ExperimentalFeature(0, 'a', true, false, 'a',
-        firstSupportedVersion: '1.0');
+        firstSupportedVersion: '1.0.0');
     expect(getFlags(fromStrings(['a'])), [true]);
   }
 
   test_fromStrings_illegal_use_of_expired_flag_disable() {
     // Expired flags are ignored even if they would fail validation.
     knownFeatures['a'] = ExperimentalFeature(null, 'a', true, true, 'a',
-        firstSupportedVersion: '1.0');
+        firstSupportedVersion: '1.0.0');
     expect(getFlags(fromStrings(['no-a'])), []);
   }
 
@@ -100,7 +100,7 @@
   test_fromStrings_unnecessary_use_of_expired_flag_enable() {
     // Expired flags are ignored.
     knownFeatures['a'] = ExperimentalFeature(null, 'a', true, true, 'a',
-        firstSupportedVersion: '1.0');
+        firstSupportedVersion: '1.0.0');
     expect(getFlags(fromStrings(['a'])), []);
   }
 
@@ -168,7 +168,7 @@
 
   test_validateFlags_ignore_redundant_disable_flags() {
     knownFeatures['a'] = ExperimentalFeature(0, 'a', true, false, 'a',
-        firstSupportedVersion: '1.0');
+        firstSupportedVersion: '1.0.0');
     expect(getValidationResult(['no-a', 'no-a']), isEmpty);
   }
 
@@ -179,7 +179,7 @@
 
   test_validateFlags_illegal_use_of_expired_flag_disable() {
     knownFeatures['a'] = ExperimentalFeature(null, 'a', true, true, 'a',
-        firstSupportedVersion: '1.0');
+        firstSupportedVersion: '1.0.0');
     var validationResult = getValidationResult(['no-a']);
     expect(validationResult, hasLength(1));
     var error = validationResult[0] as IllegalUseOfExpiredFlag;
@@ -213,7 +213,7 @@
 
   test_validateFlags_unnecessary_use_of_expired_flag_enable() {
     knownFeatures['a'] = ExperimentalFeature(null, 'a', true, true, 'a',
-        firstSupportedVersion: '1.0');
+        firstSupportedVersion: '1.0.0');
     var validationResult = getValidationResult(['a']);
     expect(validationResult, hasLength(1));
     var error = validationResult[0] as UnnecessaryUseOfExpiredFlag;