44
55import 'dart:async' ;
66
7- import 'package:analyzer/dart/element/element .dart' ;
7+ import 'package:analyzer/dart/element/element2 .dart' ;
88import 'package:analyzer/dart/element/type.dart' ;
99import 'package:build/build.dart' ;
1010import 'package:source_gen/source_gen.dart' ;
@@ -28,9 +28,10 @@ class GoRouterGenerator extends Generator {
2828 const GoRouterGenerator ();
2929
3030 TypeChecker get _typeChecker => TypeChecker .any (
31- _annotations.keys.map ((String annotation) =>
32- TypeChecker .fromUrl ('$_routeDataUrl #$annotation ' )),
33- );
31+ _annotations.keys.map (
32+ (String annotation) => TypeChecker .fromUrl ('$_routeDataUrl #$annotation ' ),
33+ ),
34+ );
3435
3536 @override
3637 FutureOr <String > generate (LibraryReader library, BuildStep buildStep) async {
@@ -62,48 +63,53 @@ ${getters.map((String e) => "$e,").join('\n')}
6263 Set <String > values,
6364 Set <String > getters,
6465 ) {
65- for (final AnnotatedElement annotatedElement
66- in library.annotatedWith (_typeChecker)) {
66+ for (final AnnotatedElement annotatedElement in library.annotatedWith (
67+ _typeChecker,
68+ )) {
6769 final InfoIterable generatedValue = _generateForAnnotatedElement (
6870 annotatedElement.element,
6971 annotatedElement.annotation,
7072 );
7173 getters.add (generatedValue.routeGetterName);
72- for (final String value in generatedValue) {
73- assert (value.length == value.trim ().length);
74- values.add (value);
75- }
74+ values.addAll (generatedValue.members);
7675 }
7776 }
7877
7978 InfoIterable _generateForAnnotatedElement (
80- Element element,
79+ Element2 element,
8180 ConstantReader annotation,
8281 ) {
83- final String typedAnnotation =
84- withoutNullability (annotation.objectValue.type! .getDisplayString ());
85- final String type =
86- typedAnnotation.substring (0 , typedAnnotation.indexOf ('<' ));
82+ final String typedAnnotation = withoutNullability (
83+ annotation.objectValue.type! .getDisplayString (),
84+ );
85+ final String type = typedAnnotation.substring (
86+ 0 ,
87+ typedAnnotation.indexOf ('<' ),
88+ );
8789 final String routeData = _annotations[type]! ;
88- if (element is ! ClassElement ) {
90+ if (element is ! ClassElement2 ) {
8991 throw InvalidGenerationSourceError (
9092 'The @$type annotation can only be applied to classes.' ,
9193 element: element,
9294 );
9395 }
9496
95- final TypeChecker dataChecker =
96- TypeChecker .fromUrl ('$_routeDataUrl #$routeData ' );
97- if (! element.allSupertypes
98- .any ((InterfaceType element) => dataChecker.isExactlyType (element))) {
97+ final TypeChecker dataChecker = TypeChecker .fromUrl (
98+ '$_routeDataUrl #$routeData ' ,
99+ );
100+ if (! element.allSupertypes.any (
101+ (InterfaceType element) => dataChecker.isExactlyType (element),
102+ )) {
99103 throw InvalidGenerationSourceError (
100104 'The @$type annotation can only be applied to classes that '
101105 'extend or implement `$routeData `.' ,
102106 element: element,
103107 );
104108 }
105109
106- return RouteBaseConfig .fromAnnotation (annotation, element)
107- .generateMembers ();
110+ return RouteBaseConfig .fromAnnotation (
111+ annotation,
112+ element,
113+ ).generateMembers ();
108114 }
109115}
0 commit comments