Update Blaze language version reference.
From https://critique.corp.google.com/cl/590196257
Change-Id: Ic1e89a9449ac9f16e8064e0d6256a56593934dea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/341380
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
diff --git a/pkg/analyzer/lib/src/workspace/blaze.dart b/pkg/analyzer/lib/src/workspace/blaze.dart
index 9ae7a95..a80a458 100644
--- a/pkg/analyzer/lib/src/workspace/blaze.dart
+++ b/pkg/analyzer/lib/src/workspace/blaze.dart
@@ -543,9 +543,9 @@
return null;
}
- final pattern = RegExp(r'_version_null_safety\s*=\s*"(\d+\.\d+)"');
+ final pattern = RegExp(r'(^|\s+)_version\s*=\s*"(\d+\.\d+)"');
for (var match in pattern.allMatches(content)) {
- return Version.parse('${match.group(1)}.0');
+ return Version.parse('${match.group(2)}.0');
}
return null;
diff --git a/pkg/analyzer/test/src/workspace/blaze_test.dart b/pkg/analyzer/test/src/workspace/blaze_test.dart
index 71d61df..e9467a1 100644
--- a/pkg/analyzer/test/src/workspace/blaze_test.dart
+++ b/pkg/analyzer/test/src/workspace/blaze_test.dart
@@ -9,10 +9,12 @@
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
import 'package:analyzer/src/workspace/blaze.dart';
import 'package:async/async.dart';
+import 'package:pub_semver/pub_semver.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../../generated/test_support.dart';
+import '../dart/resolution/context_collection_resolution.dart';
main() {
defineReflectiveSuite(() {
@@ -20,6 +22,7 @@
defineReflectiveTests(BlazePackageUriResolverTest);
defineReflectiveTests(BlazeWorkspaceTest);
defineReflectiveTests(BlazeWorkspacePackageTest);
+ defineReflectiveTests(BlazeLanguageVersionTest);
});
}
@@ -185,6 +188,36 @@
}
@reflectiveTest
+class BlazeLanguageVersionTest extends BlazeWorkspaceResolutionTest {
+ void test_buildFile_nonNullable_languageVersion_fromWorkspace() async {
+ newFile('$workspaceRootPath/dart/build_defs/bzl/language.bzl', r'''
+_version = "3.1"
+_version_for_analyzer = _version
+
+language = struct(
+ version = _version,
+ version_for_analyzer = _version_for_analyzer,
+)
+''');
+
+ await resolveFileCode('$myPackageRootPath/lib/a.dart', '');
+ _assertLanguageVersion(
+ package: Version.parse('3.1.0'),
+ override: null,
+ );
+ }
+
+ void _assertLanguageVersion({
+ required Version package,
+ required Version? override,
+ }) async {
+ var element = result.libraryElement;
+ expect(element.languageVersion.package, package);
+ expect(element.languageVersion.override, override);
+ }
+}
+
+@reflectiveTest
class BlazePackageUriResolverTest with ResourceProviderMixin {
late final BlazeWorkspace workspace;
late final BlazePackageUriResolver resolver;