Skip to content

Commit 88890ae

Browse files
authored
[go_router_builder] expand supported versions of analyzer, build and source_gen (#10078)
close flutter/flutter#175071 Expand support [build](https://pub.dev/packages/build) and [source_gen](https://pub.dev/packages/source_gen) versions to support build v4 and source_gen v4 Expand support [analyzer](https://pub.dev/packages/analyzer) version to allow to v8. *List which issues are fixed by this PR. You must list at least one issue.* ## Pre-Review Checklist **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
1 parent 2d4f8ef commit 88890ae

File tree

4 files changed

+42
-23
lines changed

4 files changed

+42
-23
lines changed

packages/go_router_builder/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## 4.1.1
2+
3+
- Allow `analyzer: '>=7.4.0 <9.0.0'`.
4+
- Allow `build: '>=3.0.0 <5.0.0'`.
5+
- Allow `source_gen: '>=3.1.0 <5.0.0'`.
6+
17
## 4.1.0
28

39
- Adds support for classes that support fromJson/toJson. [#117261](https://github.com/flutter/flutter/issues/117261)

packages/go_router_builder/lib/src/route_config.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -623,7 +623,7 @@ abstract class RouteBaseConfig {
623623
}) {
624624
assert(!reader.isNull, 'reader should not be null');
625625
final InterfaceType type = reader.objectValue.type! as InterfaceType;
626-
final String typeName = type.element.name;
626+
final String typeName = type.element.displayName;
627627

628628
if (isAncestorRelative && typeName == 'TypedGoRoute') {
629629
throw InvalidGenerationSourceError(
@@ -942,7 +942,7 @@ $routeDataClassName.$dataConvertionFunctionName(
942942
String _enumMapConst(InterfaceType type) {
943943
assert(type.isEnum);
944944

945-
final String enumName = type.element.name;
945+
final String enumName = type.element.displayName;
946946

947947
final StringBuffer buffer = StringBuffer('const ${enumMapName(type)} = {');
948948

packages/go_router_builder/lib/src/type_helpers.dart

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -224,10 +224,11 @@ String compareField(
224224
}
225225

226226
/// Gets the name of the `const` map generated to help encode [Enum] types.
227-
String enumMapName(InterfaceType type) => '_\$${type.element.name}EnumMap';
227+
String enumMapName(InterfaceType type) =>
228+
'_\$${type.element.displayName}EnumMap';
228229

229230
/// Gets the name of the `const` map generated to help encode [Json] types.
230-
String jsonMapName(InterfaceType type) => type.element.name;
231+
String jsonMapName(InterfaceType type) => type.element.displayName;
231232

232233
String _stateValueAccess(
233234
FormalParameterElement element,
@@ -302,8 +303,10 @@ class _TypeHelperBigInt extends _TypeHelperWithHelper {
302303
);
303304

304305
@override
305-
bool _matchesType(DartType type) =>
306-
const TypeChecker.fromRuntime(BigInt).isAssignableFromType(type);
306+
bool _matchesType(DartType type) => const TypeChecker.typeNamed(
307+
BigInt,
308+
inSdk: true,
309+
).isAssignableFromType(type);
307310
}
308311

309312
class _TypeHelperBool extends _TypeHelperWithHelper {
@@ -342,8 +345,10 @@ class _TypeHelperDateTime extends _TypeHelperWithHelper {
342345
);
343346

344347
@override
345-
bool _matchesType(DartType type) =>
346-
const TypeChecker.fromRuntime(DateTime).isAssignableFromType(type);
348+
bool _matchesType(DartType type) => const TypeChecker.typeNamed(
349+
DateTime,
350+
inSdk: true,
351+
).isAssignableFromType(type);
347352
}
348353

349354
class _TypeHelperDouble extends _TypeHelperWithHelper {
@@ -472,14 +477,17 @@ class _TypeHelperExtensionType extends _TypeHelper {
472477
representationType.isDartCoreNum ||
473478
representationType.isDartCoreBool ||
474479
representationType.isEnum ||
475-
const TypeChecker.fromRuntime(
480+
const TypeChecker.typeNamed(
476481
BigInt,
482+
inSdk: true,
477483
).isAssignableFromType(representationType) ||
478-
const TypeChecker.fromRuntime(
484+
const TypeChecker.typeNamed(
479485
DateTime,
486+
inSdk: true,
480487
).isAssignableFromType(representationType) ||
481-
const TypeChecker.fromRuntime(
488+
const TypeChecker.typeNamed(
482489
Uri,
490+
inSdk: true,
483491
).isAssignableFromType(representationType);
484492
}
485493
}
@@ -566,7 +574,7 @@ class _TypeHelperUri extends _TypeHelperWithHelper {
566574

567575
@override
568576
bool _matchesType(DartType type) =>
569-
const TypeChecker.fromRuntime(Uri).isAssignableFromType(type);
577+
const TypeChecker.typeNamed(Uri, inSdk: true).isAssignableFromType(type);
570578
}
571579

572580
class _TypeHelperIterable extends _TypeHelperWithHelper {
@@ -606,16 +614,18 @@ class _TypeHelperIterable extends _TypeHelperWithHelper {
606614
// get correct type for iterable
607615
String iterableCaster = '';
608616
String fallBack = '';
609-
if (const TypeChecker.fromRuntime(
617+
if (const TypeChecker.typeNamed(
610618
List,
619+
inSdk: true,
611620
).isAssignableFromType(parameterElement.type)) {
612621
iterableCaster += '.toList()';
613622
if (!parameterElement.type.isNullableType &&
614623
!parameterElement.hasDefaultValue) {
615624
fallBack = '?? const []';
616625
}
617-
} else if (const TypeChecker.fromRuntime(
626+
} else if (const TypeChecker.typeNamed(
618627
Set,
628+
inSdk: true,
619629
).isAssignableFromType(parameterElement.type)) {
620630
iterableCaster += '.toSet()';
621631
if (!parameterElement.type.isNullableType &&
@@ -656,8 +666,10 @@ $fieldName$nullAwareAccess.map((e) => e.toString()).toList()''';
656666
}
657667

658668
@override
659-
bool _matchesType(DartType type) =>
660-
const TypeChecker.fromRuntime(Iterable).isAssignableFromType(type);
669+
bool _matchesType(DartType type) => const TypeChecker.typeNamed(
670+
Iterable,
671+
inSdk: true,
672+
).isAssignableFromType(type);
661673

662674
@override
663675
String _compare(String value1, String value2) =>
@@ -783,10 +795,10 @@ class _TypeHelperJson extends _TypeHelperWithHelper {
783795
}
784796

785797
final FunctionType functionType = secondParam.type as FunctionType;
786-
if (functionType.parameters.length != 1 ||
798+
if (functionType.formalParameters.length != 1 ||
787799
functionType.returnType.getDisplayString() !=
788-
type.element.typeParameters.first.getDisplayString() ||
789-
functionType.parameters[0].type.getDisplayString() != 'Object?') {
800+
type.element.typeParameters.first.displayName ||
801+
functionType.formalParameters[0].type.getDisplayString() != 'Object?') {
790802
throw InvalidGenerationSourceError(
791803
'The parameter type '
792804
'`${type.getDisplayString(withNullability: false)}` not have a supported fromJson definition.',

packages/go_router_builder/pubspec.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: go_router_builder
22
description: >-
33
A builder that supports generated strongly-typed route helpers for
44
package:go_router
5-
version: 4.1.0
5+
version: 4.1.1
66
repository: https://github.com/flutter/packages/tree/main/packages/go_router_builder
77
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+go_router_builder%22
88

@@ -11,14 +11,15 @@ environment:
1111
flutter: ">=3.29.0"
1212

1313
dependencies:
14-
analyzer: ">=7.4.0 <8.0.0"
14+
analyzer: ">=7.4.0 <9.0.0"
1515
async: ^2.8.0
16-
build: ^3.0.0
16+
# TODO(piinks): Pin version once new stable rolls.
17+
build: ">=3.0.0 <5.0.0"
1718
build_config: ^1.0.0
1819
collection: ^1.14.0
1920
meta: ^1.7.0
2021
path: ^1.8.0
21-
source_gen: ^3.0.0
22+
source_gen: ">=3.1.0 <5.0.0"
2223
source_helper: ^1.3.4
2324

2425
dev_dependencies:

0 commit comments

Comments
 (0)