This repository was archived by the owner on Feb 22, 2023. It is now read-only.
[shared_preferences] Prepare for change in handling of NoSuchMethod. #6318
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In a future release of Dart, if a class containing private members is
implemented (rather than extendeed), any attempt to invoke one of
the private members will result in a runtime error (see
dart-lang/sdk#49687). This is necessary in
order to soundly support field promotion
(dart-lang/language#2020).
The runtime error will most likely be a new exception type, not
NoSuchMethodError
. So, to avoid breaking theSharedPreferencesStorePlatform.instance
setter, we need togeneralize it to consider any exception thrown by
_verifyProvidesDefaultImplementations
as an indication that theSharedPreferencesStorePlatform
has been illegally implemented.In the non-error case,
_verifyProvidesDefaultImplementations
doesnothing, so this generalization should be safe.
Fixes flutter/flutter#110364.
Pre-launch Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.md
to add a description of the change, following repository CHANGELOG style.///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.