Skip to content

Commit

Permalink
Avoid deprecated analyzer APIs (#3351)
Browse files Browse the repository at this point in the history
- Bump dependencies to ^4.6.0.
- Bump min SDK to ^2.17.0 and switch mono_repo to test on that.
- Use constructor tearoffs now that the language version is newer
  • Loading branch information
natebosch committed Aug 12, 2022
1 parent 2dcbb05 commit fcff629
Show file tree
Hide file tree
Showing 20 changed files with 388 additions and 173 deletions.
445 changes: 331 additions & 114 deletions .github/workflows/dart.yml

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions build_modules/CHANGELOG.md
@@ -1,3 +1,5 @@
## 4.0.6-dev

## 4.0.5

* Allow analyzer verion 4.x.
Expand Down
2 changes: 1 addition & 1 deletion build_modules/lib/src/module_library.dart
Expand Up @@ -238,6 +238,6 @@ bool _isPart(CompilationUnit dart) =>
// but has a part that does, or it exports a `main` from another library.
bool _hasMainMethod(CompilationUnit dart) => dart.declarations.any((node) =>
node is FunctionDeclaration &&
node.name.name == 'main' &&
node.name2.lexeme == 'main' &&
node.functionExpression.parameters != null &&
node.functionExpression.parameters!.parameters.length <= 2);
4 changes: 2 additions & 2 deletions build_modules/pubspec.yaml
@@ -1,13 +1,13 @@
name: build_modules
version: 4.0.5
version: 4.0.6-dev
description: Builders for Dart modules
repository: https://github.com/dart-lang/build/tree/master/build_modules

environment:
sdk: ">=2.14.0 <3.0.0"

dependencies:
analyzer: ">=3.4.1 <5.0.0"
analyzer: ^4.4.0
async: ^2.5.0
bazel_worker: ^1.0.0
build: ^2.0.0
Expand Down
2 changes: 1 addition & 1 deletion build_resolvers/pubspec.yaml
Expand Up @@ -7,7 +7,7 @@ environment:
sdk: ">=2.17.0 <3.0.0"

dependencies:
analyzer: ">=4.3.0 <5.0.0"
analyzer: ^4.6.0
async: ^2.5.0
build: ^2.0.0
crypto: ^3.0.0
Expand Down
29 changes: 15 additions & 14 deletions build_resolvers/test/resolver_test.dart
Expand Up @@ -46,7 +46,7 @@ void main() {
var lib = await resolver.libraryFor(entryPoint);
expect(lib.importedLibraries.length, 2);
var libA = lib.importedLibraries.where((l) => l.name == 'a').single;
expect(libA.getType('Foo'), isNull);
expect(libA.getClass('Foo'), isNull);
}, resolvers: AnalyzerResolvers());
});

Expand All @@ -64,7 +64,7 @@ void main() {
var lib = await resolver.libraryFor(entryPoint);
expect(lib.importedLibraries.length, 2);
var libB = lib.importedLibraries.where((l) => l.name == 'b').single;
expect(libB.getType('Foo'), isNull);
expect(libB.getClass('Foo'), isNull);
}, resolvers: AnalyzerResolvers());
});

Expand Down Expand Up @@ -253,7 +253,7 @@ void main() {
''',
}, (resolver) async {
var lib = await resolver.libraryFor(entryPoint);
var clazz = lib.getType('A');
var clazz = lib.getClass('A');
expect(clazz, isNotNull);
expect(clazz!.interfaces, isEmpty);
}, resolvers: resolvers);
Expand All @@ -270,7 +270,7 @@ void main() {
''',
}, (resolver) async {
var lib = await resolver.libraryFor(entryPoint);
var clazz = lib.getType('A');
var clazz = lib.getClass('A');
expect(clazz, isNotNull);
expect(clazz!.interfaces, hasLength(1));
expect(clazz.interfaces.first.getDisplayString(withNullability: false),
Expand Down Expand Up @@ -354,7 +354,7 @@ void main() {
class Bar {}''',
}, (resolver) async {
var main = (await resolver.findLibraryByName('web.main'))!;
var meta = main.getType('Foo')!.supertype!.element.metadata[0];
var meta = main.getClass('Foo')!.supertype!.element2.metadata[0];
expect(meta, isNotNull);
expect(meta.computeConstantValue()?.toIntValue(), 0);
}, resolvers: AnalyzerResolvers());
Expand Down Expand Up @@ -392,7 +392,7 @@ void main() {
}, (resolver) async {
var entry = await resolver.libraryFor(AssetId('a', 'lib/a.dart'));
var classDefinition = entry.importedLibraries
.map((l) => l.getType('SomeClass'))
.map((l) => l.getClass('SomeClass'))
.singleWhere((c) => c != null)!;
expect(await resolver.assetIdForElement(classDefinition),
AssetId('a', 'lib/b.dart'));
Expand Down Expand Up @@ -631,18 +631,18 @@ int? get x => 1;
} ''',
}, (resolver) async {
var entry = await resolver.libraryFor(AssetId('a', 'lib/a.dart'));
var classDefinition = entry.getType('MyClass')!;
var classDefinition = entry.getClass('MyClass')!;
var color = classDefinition.getField('color')!;

if (isFlutter) {
expect(color.type.element!.name, equals('Color'));
expect(color.type.element!.library!.name, equals('dart.ui'));
expect(color.type.element2!.name, equals('Color'));
expect(color.type.element2!.library!.name, equals('dart.ui'));
expect(
color.type.element!.library!.definingCompilationUnit.source.uri
color.type.element2!.library!.definingCompilationUnit.source.uri
.toString(),
equals('dart:ui'));
} else {
expect(color.type.element!.name, equals('dynamic'));
expect(color.type.element2!.name, equals('dynamic'));
}
}, resolvers: AnalyzerResolvers());
});
Expand Down Expand Up @@ -733,7 +733,7 @@ int? get x => 1;
expect(
unit.declarations.first,
isA<FunctionDeclaration>()
.having((d) => d.name.name, 'main', 'main'));
.having((d) => d.name2.lexeme, 'main', 'main'));
}, resolvers: AnalyzerResolvers());
});
});
Expand All @@ -747,7 +747,7 @@ int? get x => 1;
var unit = await resolver.astNodeFor(lib.topLevelElements.first);
expect(unit, isA<FunctionDeclaration>());
expect(unit!.toSource(), 'main() {}');
expect((unit as FunctionDeclaration).declaredElement, isNull);
expect((unit as FunctionDeclaration).declaredElement2, isNull);
}, resolvers: AnalyzerResolvers());
});

Expand All @@ -762,7 +762,8 @@ int? get x => 1;
unit,
isA<FunctionDeclaration>()
.having((fd) => fd.toSource(), 'toSource()', 'main() {}')
.having((fd) => fd.declaredElement, 'declaredElement', isNotNull),
.having(
(fd) => fd.declaredElement2, 'declaredElement', isNotNull),
);
}, resolvers: AnalyzerResolvers());
});
Expand Down
4 changes: 2 additions & 2 deletions build_runner_core/lib/src/generate/input_matcher.dart
Expand Up @@ -21,8 +21,8 @@ class InputMatcher {

InputMatcher(InputSet inputSet, {List<String>? defaultInclude})
: includeGlobs =
(inputSet.include ?? defaultInclude)?.map((p) => Glob(p)).toList(),
excludeGlobs = inputSet.exclude?.map((p) => Glob(p)).toList();
(inputSet.include ?? defaultInclude)?.map(Glob.new).toList(),
excludeGlobs = inputSet.exclude?.map(Glob.new).toList();

/// Whether [input] is included in this set of assets.
bool matches(AssetId input) => includes(input) && !excludes(input);
Expand Down
1 change: 1 addition & 0 deletions build_runner_core/mono_pkg.yaml
@@ -1,4 +1,5 @@
sdk:
- 2.17.0
- dev

stages:
Expand Down
4 changes: 2 additions & 2 deletions build_runner_core/pubspec.yaml
Expand Up @@ -4,7 +4,7 @@ description: Core tools to write binaries that run builders.
repository: https://github.com/dart-lang/build/tree/master/build_runner_core

environment:
sdk: ">=2.14.0 <3.0.0"
sdk: ">=2.17.0 <3.0.0"

dependencies:
async: ^2.5.0
Expand All @@ -27,7 +27,7 @@ dependencies:
yaml: ^3.0.0

dev_dependencies:
analyzer: ">=2.0.0 <5.0.0"
analyzer: ^4.6.0
build_runner: ^2.0.0
build_test: ^2.0.0
lints: '>=1.0.0 <3.0.0'
Expand Down
2 changes: 1 addition & 1 deletion build_runner_core/test/generate/resolution_test.dart
Expand Up @@ -49,7 +49,7 @@ class ListClassesAndHierarchyBuilder implements Builder {
for (final type in types) {
output
..write('${type.name}: [')
..writeAll(type.allSupertypes.map((t) => t.element.name), ', ')
..writeAll(type.allSupertypes.map((t) => t.element2.name), ', ')
..writeln(']');
}
await buildStep.writeAsString(outputId, output.toString());
Expand Down
27 changes: 9 additions & 18 deletions build_runner_core/test/package_graph/apply_builders_test.dart
Expand Up @@ -22,8 +22,7 @@ void main() {
var targetGraph = await TargetGraph.forPackageGraph(packageGraph,
defaultRootPackageSources: const ['**']);
var builderApplications = [
apply('b:cool_builder', [(options) => CoolBuilder(options)],
toAllPackages())
apply('b:cool_builder', [CoolBuilder.new], toAllPackages())
];
var phases = await createBuildPhases(
targetGraph,
Expand Down Expand Up @@ -63,8 +62,7 @@ void main() {
var targetGraph = await TargetGraph.forPackageGraph(packageGraph,
defaultRootPackageSources: ['**'], overrideBuildConfig: overrides);
var builderApplications = [
apply('b:cool_builder', [(options) => CoolBuilder(options)],
toAllPackages())
apply('b:cool_builder', [CoolBuilder.new], toAllPackages())
];
var phases = await createBuildPhases(
targetGraph,
Expand All @@ -91,8 +89,7 @@ void main() {
var targetGraph = await TargetGraph.forPackageGraph(packageGraph,
defaultRootPackageSources: ['**']);
var builderApplications = [
apply('b:cool_builder', [(options) => CoolBuilder(options)],
toDependentsOf('b')),
apply('b:cool_builder', [CoolBuilder.new], toDependentsOf('b')),
];
var phases =
await createBuildPhases(targetGraph, builderApplications, {}, false);
Expand All @@ -108,8 +105,7 @@ void main() {
var targetGraph = await TargetGraph.forPackageGraph(packageGraph,
defaultRootPackageSources: ['**']);
var builderApplications = [
apply('b:cool_builder', [(options) => CoolBuilder(options)],
toDependentsOf('b'),
apply('b:cool_builder', [CoolBuilder.new], toDependentsOf('b'),
appliesBuilders: ['b:not_by_default']),
apply('b:not_by_default', [(_) => TestBuilder()], toNoneByDefault()),
];
Expand All @@ -131,8 +127,7 @@ void main() {
var targetGraph = await TargetGraph.forPackageGraph(packageGraph,
defaultRootPackageSources: ['**']);
var builderApplications = [
apply('c:cool_builder', [(options) => CoolBuilder(options)],
toDependentsOf('c'),
apply('c:cool_builder', [CoolBuilder.new], toDependentsOf('c'),
hideOutput: false),
];
var phases =
Expand All @@ -154,8 +149,7 @@ void main() {
var targetGraph = await TargetGraph.forPackageGraph(packageGraph,
defaultRootPackageSources: ['**']);
var builderApplications = [
apply('c:cool_builder', [(options) => CoolBuilder(options)],
toDependentsOf('c'),
apply('c:cool_builder', [CoolBuilder.new], toDependentsOf('c'),
appliesBuilders: ['c:not_by_default']),
apply('c:not_by_default', [(_) => TestBuilder()], toNoneByDefault(),
hideOutput: false),
Expand Down Expand Up @@ -186,8 +180,7 @@ void main() {
var targetGraph = await TargetGraph.forPackageGraph(packageGraph,
defaultRootPackageSources: ['**'], overrideBuildConfig: overrides);
var builderApplications = [
apply('b:cool_builder', [(options) => CoolBuilder(options)],
toAllPackages()),
apply('b:cool_builder', [CoolBuilder.new], toAllPackages()),
];
expect(
() =>
Expand Down Expand Up @@ -218,11 +211,9 @@ void main() {
'a',
[]);
var builderApplications = [
apply('b:cool_builder', [(options) => CoolBuilder(options)],
toDependentsOf('b'),
apply('b:cool_builder', [CoolBuilder.new], toDependentsOf('b'),
appliesBuilders: ['b:cool_builder_2']),
apply('b:cool_builder_2', [(options) => CoolBuilder(options)],
toDependentsOf('b')),
apply('b:cool_builder_2', [CoolBuilder.new], toDependentsOf('b')),
];
return await createBuildPhases(
targetGraph, builderApplications, {}, false);
Expand Down
2 changes: 1 addition & 1 deletion build_test/mono_pkg.yaml
@@ -1,5 +1,5 @@
sdk:
- 2.14.0
- 2.17.0
- dev

stages:
Expand Down
4 changes: 2 additions & 2 deletions build_test/pubspec.yaml
Expand Up @@ -4,7 +4,7 @@ version: 2.1.6-dev
repository: https://github.com/dart-lang/build/tree/master/build_test

environment:
sdk: ">=2.14.0 <3.0.0"
sdk: ">=2.17.0 <3.0.0"

dependencies:
async: ^2.5.0
Expand All @@ -24,6 +24,6 @@ dependencies:
watcher: ^1.0.0

dev_dependencies:
analyzer: ">=2.1.0 <5.0.0"
analyzer: ^4.6.0
collection: ^1.15.0
lints: '>=1.0.0 <3.0.0'
18 changes: 9 additions & 9 deletions build_test/test/resolve_source_test.dart
Expand Up @@ -20,7 +20,7 @@ void main() {
class Foo {}
''', (resolver) => resolver.findLibraryNotNull('example'));
expect(libExample.getType('Foo'), isNotNull);
expect(libExample.getClass('Foo'), isNotNull);
});

test('a simple dart file with dart: dependencies', () async {
Expand All @@ -31,7 +31,7 @@ void main() {
abstract class Foo implements LinkedHashMap {}
''', (resolver) => resolver.findLibraryNotNull('example'));
var classFoo = libExample.getType('Foo')!;
var classFoo = libExample.getClass('Foo')!;
expect(
classFoo.allSupertypes.map(_toStringId),
contains('dart:collection#LinkedHashMap'),
Expand All @@ -46,7 +46,7 @@ void main() {
abstract class Foo implements Equality {}
''', (resolver) => resolver.findLibraryNotNull('example'));
var classFoo = libExample.getType('Foo')!;
var classFoo = libExample.getClass('Foo')!;
expect(
classFoo.allSupertypes.map(_toStringId),
contains(endsWith(':collection#Equality')),
Expand All @@ -72,9 +72,9 @@ void main() {
(resolver) => resolver.findLibraryNotNull('example'),
resolverFor: mock,
);
final type = library.getType('ExamplePrime');
final type = library.getClass('ExamplePrime');
expect(type, isNotNull);
expect(type!.supertype!.element.name, 'Example');
expect(type!.supertype!.element2.name, 'Example');
});

test('waits for tearDown', () async {
Expand All @@ -91,7 +91,7 @@ void main() {
true);
var libExample = await resolver.findLibraryNotNull('example');
resolverDone.complete();
var classFoo = libExample.getType('Foo')!;
var classFoo = libExample.getClass('Foo')!;
expect(
classFoo.allSupertypes.map(_toStringId),
contains(endsWith(':collection#Equality')),
Expand All @@ -107,7 +107,7 @@ void main() {
abstract class Foo implements Equality {}
''', (resolver) async {
var libExample = await resolver.findLibraryNotNull('example');
var classFoo = libExample.getType('Foo')!;
var classFoo = libExample.getClass('Foo')!;
expect(classFoo.allSupertypes.map(_toStringId),
contains(endsWith(':collection#Equality')));
});
Expand Down Expand Up @@ -140,7 +140,7 @@ void main() {
var asset = AssetId('build_test', 'test/_files/example_lib.dart');
var libExample = await resolveAsset(
asset, (resolver) => resolver.findLibraryNotNull('example_lib'));
expect(libExample.getType('Example'), isNotNull);
expect(libExample.getClass('Example'), isNotNull);
});
});

Expand All @@ -158,7 +158,7 @@ void main() {
}

String _toStringId(InterfaceType t) =>
'${t.element.source.uri.toString().split('/').first}#${t.element.name}';
'${t.element2.source.uri.toString().split('/').first}#${t.element2.name}';

extension on Resolver {
Future<LibraryElement> findLibraryNotNull(String name) async {
Expand Down
2 changes: 1 addition & 1 deletion build_vm_compilers/lib/src/vm_entrypoint_builder.dart
Expand Up @@ -94,7 +94,7 @@ Future<bool> _isAppEntryPoint(AssetId dartId, AssetReader reader) async {
// but has a part that does, or it exports a `main` from another library.
return parsed.declarations.any((node) {
return node is FunctionDeclaration &&
node.name.name == 'main' &&
node.name2.lexeme == 'main' &&
node.functionExpression.parameters != null &&
node.functionExpression.parameters!.parameters.length <= 2;
});
Expand Down
1 change: 1 addition & 0 deletions build_vm_compilers/mono_pkg.yaml
@@ -1,4 +1,5 @@
sdk:
- 2.17.0
- dev

stages:
Expand Down
4 changes: 2 additions & 2 deletions build_vm_compilers/pubspec.yaml
Expand Up @@ -4,10 +4,10 @@ description: Builder implementations wrapping Dart VM compilers.
repository: https://github.com/dart-lang/build/tree/master/build_vm_compilers

environment:
sdk: ">=2.12.0 <3.0.0"
sdk: ">=2.17.0 <3.0.0"

dependencies:
analyzer: ">=1.0.0 <5.0.0"
analyzer: ^4.4.0
build: ^2.0.0
build_config: ^1.0.0
build_modules: ^4.0.0
Expand Down

0 comments on commit fcff629

Please sign in to comment.