fix(sdk): update dependency dart to v3.10.7 #787
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.9.2 <4.0.0->3.10.7Release Notes
dart-lang/sdk (dart)
v3.10.7Compare Source
v3.10.6Compare Source
v3.10.5Compare Source
v3.10.4Compare Source
v3.10.3Compare Source
v3.10.2Compare Source
v3.10.1Compare Source
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.
Configuration
📅 Schedule: Branch creation - "after 6pm every weekday,every weekend" in timezone Australia/Sydney, Automerge - "after 6pm every weekday,every weekend" in timezone Australia/Sydney.
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, 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.