-
-
Notifications
You must be signed in to change notification settings - Fork 279
chore(deps): update dependency dart to v3.10.0 #6016
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
renovate
wants to merge
1
commit into
main
Choose a base branch
from
renovate/dart-3.x
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+3
−3
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Contributor
✅
|
abb3634 to
4361efe
Compare
4361efe to
24e4d94
Compare
24e4d94 to
a4997b5
Compare
a4997b5 to
ca38a23
Compare
ca38a23 to
b1032ba
Compare
b1032ba to
cde5045
Compare
cde5045 to
f6cdd3b
Compare
f6cdd3b to
1025a0a
Compare
1025a0a to
2ae9e7e
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
dependencies
Pull requests that update a dependency file
needs_fixing
Some manual review or changes need to be done before updating
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.

This PR contains the following updates:
3.8.3->3.10.0Release Notes
dart-lang/sdk (dart)
v3.10.0Compare Source
Released on: 2025-11-12
Language
Dart 3.10 adds dot shorthands to the language. To use
them, set your package's [SDK constraint][language version] lower bound to 3.10
or greater (
sdk: '^3.10.0').Dart 3.10 also adjusts the inferred return type of a generator function (
sync*or
async*) to avoid introducing unneeded nullability.Dot shorthands
Dot shorthands allow you to omit the type name when accessing a static member
in a context where that type is expected.
These are some examples of ways you can use dot shorthands:
To learn more about the feature, check out the
feature specification.
Eliminate spurious Null from generator return type
The following local function
fused to have return typeIterable<int?>.The question mark in this type is spurious because the returned iterable
will never contain null (
return;stops the iteration, it does not add nullto the iterable). This feature makes the return type
Iterable<int>.This change may cause some code elements to be flagged as unnecessary. For
example,
f().first?.isEvenis flagged, andf().first.isEvenis recommendedinstead.
Tools
Analyzer
The analyzer includes a new plugin system. You can use this system to write
your own analysis rules and IDE quick fixes.
or warnings). You see these in your IDE and at the command line via
dart analyzeorflutter analyze.warning.
associated with a specific diagnostic.
See the documentation for writing an analyzer plugin, and the
documentation for using analyzer plugins to learn more.
Lint rules which are incompatible with each other and which are specified in
included analysis options files are now reported.
Offer to add required named field formal parameters in a constructor when a
field is not initialized.
Support the new
@Deprecatedannotations by reporting warnings when specificfunctionality of an element is deprecated.
Offer to import a library for an appropriate extension member when method or
property is accessed on a nullable value.
Offer to remove the
constkeyword for a constructor call which includes amethod invocation.
Remove support for the deprecated
@requiredannotation.Add two assists to bind constructor parameters to an existing or a
non-existing field.
Add a warning which is reported when an
@experimentalmember is usedoutside of the package in which it is declared.
Add a new lint rule,
remove_deprecations_in_breaking_versions, is added toencourage developers to remove any deprecated members when the containing
package has a "breaking version" number, like
x.0.0or0.y.0.(Thanks @FMorschel for many of the above
enhancements!)
Hooks
Support for hooks -- formerly know as native assets -- are now stable.
You can currently use hooks to do things such as compile or download native assets
(code written in other languages that are compiled into machine code),
and then call these assets from the Dart code of a package.
For more details see the hooks documentation.
Dart CLI and Dart VM
The Dart CLI and Dart VM have been split into two separate executables.
The Dart CLI tool has been split out of the VM into it's own embedder which
runs in AOT mode. The pure Dart VM executable is called
dartvmandhas no Dart CLI functionality in it.
The Dart CLI executable parses the CLI commands and invokes the rest
of the AOT tools in the same process, for the 'run' and 'test'
commands it execs a process which runs
dartvm.dart hello.dartexecs thedartvmprocess and runs thehello.dartfile.The Dart CLI is not generated for ia32 as we are not shipping a
Dart SDK for ia32 anymore (support to execute the
dartvmfor ia32architecture is retained).
Libraries
dart:asyncFuture.syncValueconstructor for creating a future with aknown value. Unlike
Future.value, it does not allow an asynchronousFuture<T>as the value of a newFuture<T>.dart:coreUri.parseIPv4Addressfunctionno longer incorrectly allows leading zeros. This also applies to
Uri.parseIPv6Addressfor IPv4 addresses embedded in IPv6 addresses.Uri.parseIPv4Addressaddsstartandendparametersto allow parsing a substring without creating a new string.
@Deprecated.extend()indicates the ability to extend a class isdeprecated.
@Deprecated.implement()indicates the ability to implement a class ormixin is deprecated.
@Deprecated.subclass()indicates the ability to extend a class orimplement a class or mixin is deprecated.
@Deprecated.mixin()indicates the ability to mix in a class isdeprecated.
@Deprecated.instantiate()indicates the ability to instantiate aclass is deprecated.
deprecated.
dart:ioIOOverridesas anabstract baseclass so it can no longer be implemented.
exit(...)toIOOverrides.dart:js_interopJSArray.addis added to avoid cases where during migration fromListtoJSArray,JSAnyOperatorExtension.addis accidentally used. See #59830for more details.
isA<JSBoxedDartObject>now checks that the value was the result of atoJSBoxoperation instead of returning true for all objects.@JS()annotation can now be used to change the name of keys in JavaScript. See
#55138 for more details.
Function.toJSnow apply totoJSCaptureThisaswell. Specifically, the function should be a statically known type, cannot
contain invalid types in its signature, cannot have any type parameters, and
cannot have any named parameters.
original typed array when unwrapped instead of instantiating a new typed array
with the same buffer. This applies to both the
.toJSconversions andjsify. See #61543 for more details.Uint16ListToJSInt16Arrayis renamed toUint16ListToJSUint16Array.JSUint16ArrayToInt16Listis renamed toJSUint16ArrayToUint16List.dartifynow converts JavaScriptPromisesto Dart
Futures rather thanJSValues, consistent with dart2js and DDC. See#54573 for more details.
createJSInteropWrappernow additionally takes an optional parameter whichspecifies the JavaScript prototype of the created object, similar to
createStaticInteropMockindart:js_util. See #61567 for more details.dart:js_utildart:js_utiland will throw anUnsupportedErrorif any API from this library is invoked. This also appliesto
package:js/js_util.dart.package:js/js.dartcontinues to be supported.See #61550 for more details.
v3.9.4Compare Source
Released on: 2025-09-30
Pub
dart pub get --examplewill now resolveexample/folders in theentire workspace, not only in the root package.
This fixes dart-lang/pub#4674 that made
flutter pub getcrash if the examples had not been resolved before resolving the workspace.
v3.9.3Compare Source
Released on: 2025-09-09
Tools
Development JavaScript compiler (DDC)
static calls are deeply nested within a closure.
When present this led to builds timing out or
taking several minutes rather than several seconds.
v3.9.2Compare Source
Released on: 2025-08-27
Tools
Development JavaScript compiler (DDC)
hot reload in a web development environment.
This led to possible side effects being triggered early or
crashes during the hot reload if the getter throws an exception.
v3.9.1Compare Source
Released on: 2025-08-20
This is a patch release that:
clicking 'Clear' on the Network Screen (issue dart-lang/sdk#61187).
a large amount of literals (issue flutter/flutter#172626).
tag_pattern,where the
pubspec.lockfile would not be stable whenrunning
dart pub get(issue dart-lang/pub#4644).v3.9.0Compare Source
Released on: 2025-08-13
Language
Dart 3.9 assumes null safety when computing type promotion, reachability, and
definite assignment. This makes these features produce more accurate results for
modern Dart programs. As a result of this change, more dead_code warnings may be
produced. To take advantage of these improvements, set your package's SDK
constraint lower bound to 3.9 or greater (
sdk: '^3.9.0').Tools
Analyzer
The dart command-line tool commands that use the analysis server now run
the AOT-compiled analysis server snapshot. These include
dart analyze,dart fix, anddart language-server.There is no functional difference when using the AOT-compiled analysis server
snapshot. But various tests indicate that there is a significant speedup in
the time to analyze a project.
In case of an incompatibility with the AOT-compiled snapshot, a
--no-use-aot-snapshotflag may be passed to these commands. (Please file anissue with the appropriate project if you find that you need to use this
flag! It will be removed in the future.) This flag directs the tool to revert
to the old behavior, using the JIT-compiled analysis server snapshot. To
direct the Dart Code plugin for VS Code to pass this flag, use the
dart.analyzerAdditionalArgssetting. To direct the DartIntelliJ plugin to pass this flag, use the
dart.server.additional.argumentsregistry property, similar to these steps.
Add the
switch_on_typelint rule.Add the
unnecessary_unawaitedlint rule.Support a new annotation,
@awaitNotRequired, which is used by thediscarded_futuresandunawaited_futureslint rules.Improve the
avoid_types_as_parameter_nameslint rule to include typeparameters.
The definition of an "obvious type" is expanded for the relevant lint rules,
to include the type of a parameter.
Many small improvements to the
discarded_futuresandunawaited_futureslint rules.
The code that calculates fixes and assists has numerous performance
improvements.
A new "Remove async" assist is available.
A new "Convert to normal parameter" assist is available for field formal
parameters.
New fixes are available for the following diagnostics:
for_in_of_invalid_typeimplicit_this_reference_in_initializerprefer_foreachundefined_operatoruse_if_null_to_convert_nulls_to_boolsNumerous fixes and improvements are included in the "create method," "create
getter," "create mixin," "add super constructor," and "replace final with
var" fixes.
Dependencies listed in
dependency_overridesin apubspec.yamlfile nowhave document links to pub.dev.
Improvements to type parameters and type arguments in the LSP type hierarchy.
Folding try/catch/finally blocks is now supported for LSP clients.
Improve code completion suggestions with regards to operators, extension
members, named parameters, doc comments, patterns, collection if-elements and
for-elements, and more.
Improve syntax highlighting of escape sequences in string literals.
Add "library cycle" information to the diagnostic pages.
(Thanks @FMorschel for many of the above
enhancements!)
Dart build
dart build -f exe <target>is nowdart build cli --target=<target>. Seedart build cli --helpfor more info.Dart Development Compiler (dartdevc)
Outstanding async code now checks and cancels itself after a hot restart if
it was started in a different generation of the application before the
restart. This includes outstanding
Futures created by callingJSPromise.toDartfrom thedart:js_interopand the underlying thedart:js_utilhelperpromiseToFuture. Dart callbacks will not be run, butcallbacks on the JavaScript side will still be executed.
Fixed a soundness issue that allowed direct invocation of the value returned
from a getter without any runtime checks when the getter's return type was a
generic type argument instantiated as
dynamicorFunction.A getter defined as:
Could trigger the issue with a direct invocation:
Dart native compiler
Added cross-compilation support for
target architectures of
arm(ARM32) andriscv64(RV64GC)when the target OS is Linux.
Pub
Git dependencies can now be version-solved based on git tags.
Use a
tag_patternin the descriptor and a version constraint, and allcommits matching the pattern will be considered during resolution. For
example:
Starting from language version 3.9 the
flutterconstraint upper bound is nowrespected in your root package. For example:
Results in
dart pub getfailing if invoked with a version ofthe Flutter SDK different from
3.33.0.The upper bound of the flutter constraint is still ignored in
packages used as dependencies.
See flutter/flutter#95472 for details.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.