diff --git a/packages/freezed/lib/builder.dart b/packages/freezed/lib/builder.dart index eaece8e7..81ff54c1 100644 --- a/packages/freezed/lib/builder.dart +++ b/packages/freezed/lib/builder.dart @@ -6,16 +6,26 @@ import 'src/freezed_generator.dart'; /// Builds generators for `build_runner` to run Builder freezed(BuilderOptions options) { - return PartBuilder( - [FreezedGenerator(Freezed.fromJson(options.config))], - formatOutput: options.config['format'] == false ? (str) => str : null, - '.freezed.dart', - header: ''' + final generators = [FreezedGenerator(Freezed.fromJson(options.config))]; + const generatedExtension = '.freezed.dart'; + const header = ''' // coverage:ignore-file // GENERATED CODE - DO NOT MODIFY BY HAND // ignore_for_file: type=lint // ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark - ''', - options: options, - ); + '''; + if (options.config['format'] == false) { + return PartBuilder( + generators, + generatedExtension, + formatOutput:(code, languageVersion) => code, + header: header, + ); + } else { + return PartBuilder( + generators, + generatedExtension, + header: header, + ); + } } diff --git a/packages/freezed/lib/src/ast.dart b/packages/freezed/lib/src/ast.dart index 9c3848b2..61fd7b31 100644 --- a/packages/freezed/lib/src/ast.dart +++ b/packages/freezed/lib/src/ast.dart @@ -56,8 +56,7 @@ extension ClassX on ClassDeclaration { extension ConstructorX on ConstructorDeclaration { String get fullName { - // ignore: deprecated_member_use, latest analyzer with enclosingElement3 not available in stable channel - final classElement = declaredElement!.enclosingElement; + final classElement = declaredElement!.enclosingElement3; var generics = classElement.typeParameters.map((e) => '\$${e.name}').join(', '); @@ -65,15 +64,13 @@ extension ConstructorX on ConstructorDeclaration { generics = '<$generics>'; } - // ignore: deprecated_member_use, latest analyzer with enclosingElement3 not available in stable channel - final className = classElement.enclosingElement.name; + final className = classElement.enclosingElement3.name; return name == null ? '$className$generics' : '$className$generics.$name'; } String get escapedName { - // ignore: deprecated_member_use, latest analyzer with enclosingElement3 not available in stable channel - final classElement = declaredElement!.enclosingElement; + final classElement = declaredElement!.enclosingElement3; var generics = classElement.typeParameters.map((e) => '\$${e.name}').join(', '); diff --git a/packages/freezed/lib/src/tools/recursive_import_locator.dart b/packages/freezed/lib/src/tools/recursive_import_locator.dart index e4f76298..10339f64 100644 --- a/packages/freezed/lib/src/tools/recursive_import_locator.dart +++ b/packages/freezed/lib/src/tools/recursive_import_locator.dart @@ -31,8 +31,14 @@ extension FindAllAvailableTopLevelElements on LibraryElement { yield* topLevelElements; final librariesToCheck = checkExports - ? libraryExports.map(_LibraryDirectives.fromExport).nonNulls - : libraryImports.map(_LibraryDirectives.fromImport).nonNulls; + ? units + .expand((e) => e.libraryExports) + .map(_LibraryDirectives.fromExport) + .nonNulls + : units + .expand((e) => e.libraryImports) + .map(_LibraryDirectives.fromImport) + .nonNulls; for (final directive in librariesToCheck) { if (!visitedLibraryPaths.add(directive.key)) { diff --git a/packages/freezed/lib/src/tools/type.dart b/packages/freezed/lib/src/tools/type.dart index 61444674..2d551c3a 100644 --- a/packages/freezed/lib/src/tools/type.dart +++ b/packages/freezed/lib/src/tools/type.dart @@ -41,7 +41,9 @@ String resolveFullTypeStringFrom( LibraryElement originLibrary, DartType type, ) { - final owner = originLibrary.prefixes.firstWhereOrNull( + final owner = originLibrary.units + .expand((e) => e.libraryImportPrefixes) + .firstWhereOrNull( (e) { return e.imports.any((l) { return l.importedLibrary!.anyTransitiveExport((library) { diff --git a/packages/freezed/pubspec.yaml b/packages/freezed/pubspec.yaml index 8dde2f23..f906970a 100644 --- a/packages/freezed/pubspec.yaml +++ b/packages/freezed/pubspec.yaml @@ -10,16 +10,16 @@ environment: sdk: ">=3.0.0 <4.0.0" dependencies: - analyzer: ">=6.5.0 <7.0.0" + analyzer: ">=6.5.0 <8.0.0" build: ^2.3.1 build_config: ^1.1.0 collection: ^1.15.0 meta: ^1.9.1 - source_gen: ^1.4.0 + source_gen: ^2.0.0 freezed_annotation: ^2.4.4 json_annotation: ^4.8.0 # Indirect dependency, but fixes a compiler error when using `pub downgrade` - dart_style: ^2.3.6 + dart_style: ^3.0.0 dev_dependencies: json_serializable: ^6.3.2