Skip to content

Commit b945ca0

Browse files
authored
Non-const-providers (#4396)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Refactor** * Generated providers now use runtime-initialized final bindings instead of compile-time consts. * Provider constructors and factory initializers are non-const, and dependency / transitive-dependency collections use non-const forms. * Immutability/const semantics adjusted across generated code and tests; public API names remain unchanged but initialization semantics and related metadata are updated. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
1 parent 5f42f19 commit b945ca0

File tree

130 files changed

+1114
-1130
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+1114
-1130
lines changed

examples/counter/lib/main.g.dart

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/pub/lib/detail.g.dart

Lines changed: 10 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/pub/lib/search.g.dart

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/stackoverflow/lib/common.g.dart

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/stackoverflow/lib/question.g.dart

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/stackoverflow/lib/tag.g.dart

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/flutter_riverpod/lib/src/providers/legacy/change_notifier_provider.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ final class ChangeNotifierProvider<NotifierT extends ChangeNotifier?>
9090
/// An implementation detail of Riverpod
9191
/// @nodoc
9292
@internal
93-
const ChangeNotifierProvider.internal(
93+
ChangeNotifierProvider.internal(
9494
this._createFn, {
9595
required super.name,
9696
required super.dependencies,

packages/riverpod/lib/src/core/family.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ typedef FamilyCreate<CreatedT, ArgT> = CreatedT Function(Ref ref, ArgT arg);
4747
@publicInMisc
4848
final class Family extends ProviderOrFamily implements _FamilyOverride {
4949
/// A base class for all families
50-
const Family({
50+
Family({
5151
required super.name,
5252
required super.dependencies,
5353
required super.$allTransitiveDependencies,
@@ -67,7 +67,7 @@ final class Family extends ProviderOrFamily implements _FamilyOverride {
6767
@internal
6868
base class $Family extends Family {
6969
/// A base class for all families
70-
const $Family({
70+
$Family({
7171
required super.name,
7272
required super.dependencies,
7373
required super.$allTransitiveDependencies,
@@ -129,7 +129,7 @@ base class FunctionalFamily<
129129
/// help them define a [Family].
130130
///
131131
/// This API is not meant for public consumption.
132-
const FunctionalFamily(
132+
FunctionalFamily(
133133
this._createFn, {
134134
required FunctionalProviderFactory<ProviderT, CreatedT, ArgT>
135135
providerFactory,
@@ -227,7 +227,7 @@ base class ClassFamily<
227227
/// help them define a [Family].
228228
///
229229
/// This API is not meant for public consumption.
230-
const ClassFamily(
230+
ClassFamily(
231231
this._createFn, {
232232
required ClassProviderFactory<NotifierT, ProviderT, CreatedT, ArgT>
233233
providerFactory,

packages/riverpod/lib/src/core/foundation.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ interface class ProviderListenableOrFamily {}
99
@publicInMisc
1010
sealed class ProviderOrFamily implements ProviderListenableOrFamily {
1111
/// A common interface shared by [ProviderBase] and [Family]
12-
const ProviderOrFamily({
12+
ProviderOrFamily({
1313
required this.name,
1414
required this.dependencies,
1515
required this.$allTransitiveDependencies,
@@ -194,7 +194,6 @@ String shortHash(Object? object) {
194194
///
195195
/// See also:
196196
/// - [SyncProviderTransformerMixin] for making custom [ProviderListenable]s.
197-
@immutable
198197
@publicInCodegen
199198
@publicInMisc
200199
abstract interface class ProviderListenable<StateT>

packages/riverpod/lib/src/core/mutations.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ final class _MutationProvider<ValueT>
5959
_MutationNotifier<ValueT>,
6060
_MutationNotifier<ValueT>
6161
> {
62-
const _MutationProvider(this.mutation)
62+
_MutationProvider(this.mutation)
6363
: super(
6464
from: null,
6565
argument: null,
@@ -86,11 +86,13 @@ final class _MutationProvider<ValueT>
8686
String? debugGetCreateSourceHash() => null;
8787

8888
@override
89+
// ignore: avoid_equals_and_hash_code_on_mutable_classes
8990
bool operator ==(Object other) {
9091
return other is _MutationProvider<ValueT> && mutation == other.mutation;
9192
}
9293

9394
@override
95+
// ignore: avoid_equals_and_hash_code_on_mutable_classes
9496
int get hashCode => mutation.hashCode;
9597
}
9698

0 commit comments

Comments
 (0)