From a0cea7356a66a5fb5bd8ae639e000b071695921f Mon Sep 17 00:00:00 2001 From: Julian Finkler Date: Wed, 6 Aug 2025 08:05:23 +0200 Subject: [PATCH 1/3] fix: Deprecations in helpers.dart --- packages/catalyst_builder/lib/src/builder/helpers.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/catalyst_builder/lib/src/builder/helpers.dart b/packages/catalyst_builder/lib/src/builder/helpers.dart index 6b09e76..f5fc115 100644 --- a/packages/catalyst_builder/lib/src/builder/helpers.dart +++ b/packages/catalyst_builder/lib/src/builder/helpers.dart @@ -5,10 +5,10 @@ import 'constants.dart'; extension ElementAnnotationExtension on ElementAnnotation { /// Checks if the annotation is part of the catalyst_builder package. bool isLibraryAnnotation(String name) { - if (element?.enclosingElement3?.name != name) { + if (element2?.enclosingElement2?.displayName != name) { return false; } - var packageUri = element!.library?.source.uri.toString(); + var packageUri = element2!.library2?.uri.toString(); if (packageUri == null) { return false; } From c545eb4c4f0ce0ff33e63f4e9205fbcf5ec10381 Mon Sep 17 00:00:00 2001 From: Julian Finkler Date: Wed, 6 Aug 2025 08:45:46 +0200 Subject: [PATCH 2/3] fix: Deprecations in preflight_builder.dart and service_container_plugin_builder.dart --- .../lib/src/builder/preflight_builder.dart | 91 ++++++++++--------- .../service_container_plugin_builder.dart | 9 +- 2 files changed, 51 insertions(+), 49 deletions(-) diff --git a/packages/catalyst_builder/lib/src/builder/preflight_builder.dart b/packages/catalyst_builder/lib/src/builder/preflight_builder.dart index 4ae123b..bcc8d0d 100644 --- a/packages/catalyst_builder/lib/src/builder/preflight_builder.dart +++ b/packages/catalyst_builder/lib/src/builder/preflight_builder.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'dart:convert'; import 'package:analyzer/dart/constant/value.dart'; -import 'package:analyzer/dart/element/element.dart'; +import 'package:analyzer/dart/element/element2.dart'; import 'package:analyzer/dart/element/type.dart'; import 'package:build/build.dart'; import 'package:catalyst_builder_contracts/catalyst_builder_contracts.dart'; @@ -26,7 +26,7 @@ class PreflightBuilder implements Builder { return; } - LibraryElement libraryElement; + LibraryElement2 libraryElement; try { libraryElement = await buildStep.inputLibrary; } catch (e) { @@ -45,35 +45,33 @@ class PreflightBuilder implements Builder { ); } - PreflightPart _extractAnnotations(LibraryElement entryLib) { + PreflightPart _extractAnnotations(LibraryElement2 entryLib) { var services = []; - for (var lib in entryLib.topLevelElements) { + for (var lib in entryLib.children2.whereType()) { services.addAll(_extractFromTopLevelElement(lib)); } - return PreflightPart( - services: services, - ); + return PreflightPart(services: services); } - List _extractFromTopLevelElement(Element el) { + List _extractFromTopLevelElement(Annotatable el) { var services = []; - var isPreloaded = el.metadata.any((a) => a.isLibraryAnnotation('Preload')); + var isPreloaded = el.metadata2.annotations.any( + (a) => a.isLibraryAnnotation('Preload'), + ); - for (var annotation in el.metadata) { + for (var annotation in el.metadata2.annotations) { if (annotation.isLibraryAnnotation('ServiceMap')) { services.addAll( _extractServicesFromServiceMap(annotation, isPreloaded), ); } - if (annotation.isLibraryAnnotation('Service') && el is ClassElement) { + if (annotation.isLibraryAnnotation('Service') && el is ClassElement2) { var serviceAnnotation = annotation.computeConstantValue(); - services.add(_mapToExtractedService( - el, - serviceAnnotation, - isPreloaded, - )); + services.add( + _mapToExtractedService(el, serviceAnnotation, isPreloaded), + ); } } return services; @@ -93,22 +91,20 @@ class PreflightBuilder implements Builder { continue; } - var keyElement = typed.element; - if (keyElement is! ClassElement) { + var keyElement = typed.element3; + if (keyElement is! ClassElement2) { continue; } - serviceMapServices.add(_mapToExtractedService( - keyElement, - kvp.value, - isPreloaded, - )); + serviceMapServices.add( + _mapToExtractedService(keyElement, kvp.value, isPreloaded), + ); } return serviceMapServices; } ExtractedService _mapToExtractedService( - ClassElement serviceClass, + ClassElement2 serviceClass, DartObject? serviceAnnotation, bool isPreloaded, ) { @@ -117,8 +113,8 @@ class PreflightBuilder implements Builder { return ExtractedService( lifetime: lifetime.toString(), service: SymbolReference( - symbolName: serviceClass.name, - library: serviceClass.librarySource.uri.toString(), + symbolName: serviceClass.displayName, + library: serviceClass.library2.uri.toString(), ), constructorArgs: _extractConstructorArgs(serviceClass), exposeAs: _getExposeAs(serviceAnnotation), @@ -133,11 +129,11 @@ class PreflightBuilder implements Builder { return null; } - var exposeAsElement = typed.element; + var exposeAsElement = typed.element3; return SymbolReference( - symbolName: exposeAsElement.name, - library: exposeAsElement.librarySource.uri.toString(), + symbolName: exposeAsElement.displayName, + library: exposeAsElement.library2.uri.toString(), ); } @@ -149,19 +145,27 @@ class PreflightBuilder implements Builder { return ServiceLifetime.values[lifetimeIndex ?? 1]; } - List _extractConstructorArgs(ClassElement el) { - return el.constructors - .firstWhere((ctor) => !ctor.isFactory && ctor.name == '') - .parameters - .map(_buildConstructorArg) + List _extractConstructorArgs(ClassElement2 el) { + var constructors = el.children2 + .whereType() + .where( + (ctor) => + !ctor.isFactory && + (ctor.firstFragment.name2 == '' || + ctor.firstFragment.name2 == 'new'), + ) .toList(); + return constructors.firstOrNull?.formalParameters + .map(_buildConstructorArg) + .toList() ?? + []; } - ConstructorArg _buildConstructorArg(ParameterElement param) { - var annotations = param.metadata.cast(); + ConstructorArg _buildConstructorArg(FormalParameterElement param) { + var annotations = param.metadata2.annotations; return ConstructorArg( - name: param.name, + name: param.displayName, isOptional: param.isOptional, isPositional: param.isPositional, isNamed: param.isNamed, @@ -173,10 +177,10 @@ class PreflightBuilder implements Builder { InjectAnnotation? _extractInjectAnnotation( List annotations, ) { - var injectAnnotation = annotations.firstWhere( - (a) => a!.isLibraryAnnotation('Inject'), - orElse: () => null, - ); + var injectAnnotation = annotations.cast().firstWhere( + (a) => a!.isLibraryAnnotation('Inject'), + orElse: () => null, + ); if (injectAnnotation == null) { return null; @@ -186,10 +190,7 @@ class PreflightBuilder implements Builder { var tag = constantValue?.getField('tag')?.toSymbolValue(); var parameter = constantValue?.getField('parameter')?.toStringValue(); - return InjectAnnotation( - tag: tag, - parameter: parameter, - ); + return InjectAnnotation(tag: tag, parameter: parameter); } List _getTags(DartObject? serviceAnnotation) { diff --git a/packages/catalyst_builder/lib/src/builder/service_container_plugin_builder.dart b/packages/catalyst_builder/lib/src/builder/service_container_plugin_builder.dart index da96f4e..a9fae7d 100644 --- a/packages/catalyst_builder/lib/src/builder/service_container_plugin_builder.dart +++ b/packages/catalyst_builder/lib/src/builder/service_container_plugin_builder.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'dart:convert'; -import 'package:analyzer/dart/element/element.dart'; +import 'package:analyzer/dart/element/element2.dart'; import 'package:build/build.dart'; import 'package:code_builder/code_builder.dart'; import 'package:dart_style/dart_style.dart'; @@ -20,7 +20,7 @@ class ServiceContainerPluginBuilder implements Builder { if (!await buildStep.resolver.isLibrary(buildStep.inputId)) { return; } - LibraryElement libraryElement; + LibraryElement2 libraryElement; try { libraryElement = (await buildStep.inputLibrary); } catch (e) { @@ -28,8 +28,9 @@ class ServiceContainerPluginBuilder implements Builder { return; } - var annotation = libraryElement.topLevelElements - .map((el) => el.metadata.where( + var annotation = libraryElement.children2 + .whereType() + .map((el) => el.metadata2.annotations.where( (m) => m.isLibraryAnnotation('GenerateServiceContainerPlugin'))) .fold([], (prev, e) => [...prev, ...e]).firstOrNull; From d99536fc3a5a584d7ba242322c3591f89345223b Mon Sep 17 00:00:00 2001 From: Julian Finkler Date: Wed, 6 Aug 2025 08:46:02 +0200 Subject: [PATCH 3/3] change: Upgrade build and analyzer package --- packages/catalyst_builder/pubspec.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/catalyst_builder/pubspec.yaml b/packages/catalyst_builder/pubspec.yaml index 4a66a25..95929ce 100644 --- a/packages/catalyst_builder/pubspec.yaml +++ b/packages/catalyst_builder/pubspec.yaml @@ -29,10 +29,10 @@ environment: dependencies: code_builder: ^4.2.0 dart_style: ^3.0.1 - build: ^2.1.0 + build: ^3.0.0 glob: ^2.1.0 path: ^1.8.0 - analyzer: '>=6.2.0 <8.0.0' + analyzer: '>=7.4.0 <9.0.0' yaml: ^3.0.0 catalyst_builder_contracts: ^2.0.0