Saltar al contenido principal

Registro de cambios de Dart

Un registro de cambios completo para Dart.

Esta página muestra el historial completo de cambios del Dart SDK y el lenguaje Dart, organizados por versión. Usamos etiquetas para clasificar los cambios, como New para características, Fixed para errores, y Breaking para cambios incompatibles. Algunos cambios son Language versioned, lo que significa que solo entran en vigor cuando actualizas la language version de tu código.

3.12

LenguajePrivate named parameters
Nuevo

Released: 2026-05-18

Se introdujo soporte para private named parameters en parámetros de inicialización y parámetros del constructor primario. Esta característica permite que los constructores acepten parámetros nombrados que inicializan directamente campos privados. El guion bajo inicial se omite automáticamente para determinar el nombre del parámetro público en el sitio de llamada.

Bibliotecasdart:core
Nuevo

Released: 2026-05-18

La implementación de RegExp en Dart VM ahora admite spans de modificadores y grupos de captura nombrados duplicados.

Bibliotecas dart:js_interop
Rompimiento

Released: 2026-05-18

Se movió isA de JSAnyUtilityExtension a NullableObjectUtilExtension para admitir la verificación de tipos de cualquier Object?. Además, isA<JSObject>() evalúa correctamente objetos JS que carecen de prototipos, y isA<JSAny>() verifica de manera robusta que un valor sea un valor JS válido. Dado que NullableObjectUtilExtension se aplica al supertipo más amplio Object? en lugar de JSAny?, esta migración es compatible con versiones anteriores para la mayoría del código. Este cambio rompe el código existente solo si hiciste referencia explícita al nombre JSAnyUtilityExtension aplicando la extensión directamente o importándola con directivas show/hide.

Bibliotecas dart:js_interop
Cambiado

Released: 2026-05-18

isA<JSExportedDartFunction>() ahora verifica si la función es una función wrapper de JS devuelta por Function.toJS o Function.toJSCaptureThis.

Bibliotecas dart:js_interop
Nuevo

Released: 2026-05-18

Se agregaron los tipos JSIterableProtocol, JSIterable, JSIteratorProtocol, JSIterator y JSIteratorResult para modelar los protocolos de iteración de JavaScript. JSArray y JSString ahora implementan JSIterable.

Bibliotecas dart:js_interop
Nuevo

Released: 2026-05-18

Se agregaron tipos de extensión para proporcionar Iterable.toJSIterable, JSIterable.toDartIterable, Iterator.toJSIterator y JSIterator.toDartIterator.

HerramientasAnalizador
Nuevo

Released: 2026-05-18

El nuevo lint simple_directive_paths marca rutas import y export innecesariamente complejas, como rutas que contienen segmentos redundantes ./ o de retroceso ../. La corrección rápida asociada simplifica estas rutas automáticamente.

Usa dart fix --code=simple_directive_paths (con --dry-run o --apply) para corregir en masa las violaciones de lint existentes en tu proyecto.

HerramientasAnalizador
Cambiado

Released: 2026-05-18

La regla de lint prefer_initializing_formals ahora reporta parámetros nombrados que califican como private named parameters, si el pubspec del paquete habilita la característica del lenguaje (por ejemplo, sdk: ^3.12.0).

Usa dart fix --code=prefer_initializing_formals (con --dry-run o --apply) para corregir en masa las violaciones de lint existentes.

HerramientasAnalizador
Nuevo

Released: 2026-05-18

dart fix ahora admite corregir violaciones de lint avoid_final_parameters usando dart fix --code=avoid_final_parameters (con --dry-run o --apply).

HerramientasAnalizador
Cambiado

Released: 2026-05-18

El analizador ahora advierte cuando se hace tear-off de una función que tiene un parámetro anotado con @mustBeConst.

HerramientasAnalizador
Cambiado

Released: 2026-05-18

La regla invalid_runtime_check_with_js_interop_types ahora verifica tipos de interoperabilidad JS dentro de cláusulas catch y te indica usar isA para verificaciones de tipos en su lugar.

HerramientasAnalizador
Nuevo

Released: 2026-05-18

Se agregó soporte inicial para 'depuración con print' mediante nuevas secciones en la página "Plugins" Insights (Diagnostics). Cuando un complemento calcula diagnósticos de lint y advertencias, el servidor de análisis ahora redirige las llamadas print y presenta los mensajes en la sección del complemento apropiado en la página Plugins.

HerramientasAnalizador
Cambiado

Released: 2026-05-18

Soporte mejorado para tipos de extensión en muchas reglas de lint existentes.

HerramientasAnalizador
Cambiado

Released: 2026-05-18

Soporte mejorado para elementos con conocimiento de nulidad en reglas de lint existentes.

HerramientasAnalizador
Cambiado

Released: 2026-05-18

El servidor de análisis se inicia más rápido debido al almacenamiento en caché mejorado de archivos de opciones de análisis. La aceleración exacta depende del número de archivos de opciones de análisis en tu espacio de trabajo y del número de archivos incluidos, con las mayores mejoras observadas en sistemas con acceso a disco más lento.

HerramientasPub
Cambiado

Released: 2026-05-18

dart pub cache repair ahora por defecto solo repara los paquetes referenciados por el pubspec.lock de tu proyecto actual. Para reparar todos los paquetes, usa la bandera --all.

HerramientasPub
Cambiado

Released: 2026-05-18

dart pub add y dart pub unpack ahora aceptan @ como alternativa a : para separar un nombre de paquete de su restricción de versión.

HerramientasPub
Nuevo

Released: 2026-05-18

Las dependencias de Git ahora admiten LFS.

Herramientasdart2wasm
Cambiado

Released: 2026-05-18

Se actualizó la API del cargador de módulos de carga diferida para admitir la obtención por lotes de módulos diferidos. El incrustador ahora usa loadDeferredModules en lugar de loadDeferredModule. Este nuevo callback acepta un array de nombres de módulos en lugar de un solo nombre de módulo. Además, todas las funciones de carga de módulos deben aceptar un callback instantiator y pasarle los resultados cargados.

Herramientasdart2js
Corregido

Released: 2026-05-18

JSExportedDartFunction.toDart a veces devolvía incorrectamente la función Dart original incluso si la función wrapper de JS se convertía desde una llamada a la obsoleta allowInterop. Para ser consistente con DDC y dart2wasm, ahora lanza una excepción si la función wrapper de JS no era un resultado de Function.toJS o Function.toJSCaptureThis.

3.11

Bibliotecasdart:io
Nuevo

Released: 2026-02-11

Se agregó soporte para sockets de dominio Unix (AF_UNIX) en Windows. El soporte está restringido al subconjunto de características admitidas por el sistema operativo. Windows actualmente no admite las siguientes características para los sockets AF_UNIX: sockets de datagramas, datos auxiliares o direcciones de socket abstractas. Los sockets de dominio Unix se representan en el sistema de archivos usando reparse points lo que lleva a algunas discrepancias en el comportamiento de las APIs de dart:io: por ejemplo File(socketPath).existsSync() devolverá true en sistemas operativos POSIX, pero false en Windows. Usa FileSystemEntity.typeSync() en su lugar para obtener comportamiento portable.

Bibliotecas dart:js_interop
Nuevo

Released: 2026-02-11

Se agregó un constructor a JSSymbol, así como JSSymbol.key, JSSymbol.description y métodos estáticos para todos los símbolos ECMAScript conocidos.

Bibliotecasdart:js_util
Rompimiento Eliminado

Released: 2026-02-11

dart2wasm ya no admite dart:js_util. Cualquier código que importe dart:js_util ya no se compilará con dart2wasm. En consecuencia, el código que depende de package:js tampoco se compilará con dart2wasm. El nombre dart.library.js_util ya no es una clave en entornos de compilación dart2wasm, incluyendo en importaciones y exportaciones condicionales.

HerramientasAnalizador
Cambiado

Released: 2026-02-11

Las páginas Insights (también conocidas como páginas "Analysis Server Diagnostics") ahora muestran datos sobre el "Message Scheduler."

HerramientasAnalizador
Nuevo

Released: 2026-02-11

El comando "Fix all in workspace" ahora admite un indicador de progreso.

HerramientasAnalizador
Cambiado

Released: 2026-02-11

El análisis mediante complementos del analizador ahora es más rápido en ejecuciones posteriores, ya que el servidor de análisis ahora reutilizará un snapshot AOT existente del punto de entrada del complemento. Esto ahorra una cantidad constante de tiempo al inicio de cada sesión del IDE y ejecución de dart analyze, del orden de 10 segundos.

HerramientasAnalizador
Corregido

Released: 2026-02-11

Se hicieron varias correcciones para el método call en un objeto Function, como "ir a definición" y autocompletado.

HerramientasAnalizador
Corregido

Released: 2026-02-11

Se hicieron varias correcciones para los parámetros error y stackTrace de declaraciones try/catch.

HerramientasAnalizador
Corregido

Released: 2026-02-11

Se hicieron varias correcciones para resaltado de sintaxis, navegación, autocompletado de código, hovers, correcciones rápidas, asistentes, refactorización "renombrar" y "ir a importaciones."

HerramientasAnalizador
Corregido

Released: 2026-02-11

Se corrigieron varios problemas con el soporte para la sintaxis "dot shorthands" en los IDEs.

HerramientasAnalizador
Corregido

Released: 2026-02-11

Se implementaron mejoras de formato al escribir en LSP para no formatear en casos no deseados.

HerramientasAnalizador
Corregido

Released: 2026-02-11

Correcciones a la refactorización "Extract Widget".

HerramientasAnalizador
Nuevo

Released: 2026-02-11

Se agregó una nueva regla de lint: simplify_variable_pattern, que fomenta usar la abreviatura de patrón para variables y nombres de propiedad del mismo nombre.

HerramientasAnalizador
Obsoleto

Released: 2026-02-11

La regla de lint avoid_null_checks_in_equality_operators ahora está obsoleta.

HerramientasAnalizador
Obsoleto

Released: 2026-02-11

La regla de lint prefer_final_parameters ahora está obsoleta.

HerramientasAnalizador
Obsoleto

Released: 2026-02-11

La regla de lint use_if_null_to_convert_nulls_to_bools ahora está obsoleta.

Herramientas Compilador de desarrollo de Dart (dartdevc)
Cambiado

Released: 2026-02-11

El tiempo asíncrono del Future devuelto por deferred_prefix.loadLibrary() ahora es consistente independientemente de si las importaciones diferidas apropiadas son admitidas en el entorno de ejecución o no. Esto hace que el tiempo sea más consistente con dart2js donde las cargas siempre son una operación asíncrona.

HerramientasPub
Nuevo Con versión de lenguaje

Released: 2026-02-11

Se ha agregado soporte "Glob" para espacios de trabajo pub. Ahora para incluir todos los paquetes dentro de pkgs/ en el espacio de trabajo, simplemente escribe:

yaml
workspace:
  - pkgs/*

Admitido si la restricción del Dart SDK del paquete contenedor es 3.11.0 o superior.

HerramientasPub
Nuevo

Released: 2026-02-11

Se agregó el nuevo comando dart pub cache gc para recuperar espacio en disco de tu caché pub. Funciona eliminando paquetes de tu caché pub que no son referenciados por ninguno de tus proyectos actuales.

HerramientasPub
Nuevo

Released: 2026-02-11

Al ejecutar una prueba de dart pub publish con la bandera --dry-run, ahora puedes ignorar advertencias con la bandera --ignore-warnings.

Cuando especificas esta bandera, la prueba solo saldrá con un código de salida distinto de cero si la validación del paquete tiene errores.

SDKActualizaciones de plataforma
Cambiado

Released: 2026-02-11

Se agregó soporte para sockets de dominio Unix en Windows en dart:io. También se eliminó el soporte para dart:js_util en dart2wasm, requiriendo migración a dart:js_interop.

HerramientasCompilación Wasm
Eliminado Rompimiento

Released: 2026-02-11

El código que importa dart:js_util o package:js ahora resulta en un error de compilación al compilar a WebAssembly. Invocar cualquier API de estas bibliotecas resultará en un error de tiempo de ejecución. Los usos deben migrarse a dart:js_interop y dart:js_interop_unsafe.

3.10

LenguajeAtajos con punto
Cambiado

Released: 2025-11-12

Se introdujeron abreviaciones de punto para enums y otros miembros estáticos, permitiéndote omitir el nombre del tipo cuando el contexto lo hace claro. También mejora la inferencia de tipos para funciones generadoras sync* y async*, eliminando null espurio de sus tipos de retorno. El analizador ahora admite un nuevo sistema de complementos para reglas personalizadas y correcciones rápidas, y se han agregado varios nuevos lints y asistentes. Además, la CLI de Dart se ha separado de Dart VM en un ejecutable separado.

LenguajeFunciones generadoras
Corregido

Released: 2025-11-12

Las funciones generadoras sync* y async* sin un retorno especificado ahora infieren correctamente tipos de retorno como no nulos cuando no se produce ningún valor null. Esto podría activar nuevos diagnósticos relacionados con elementos de código innecesarios, como un operador de acceso con conocimiento de nulidad innecesario (?.).

Bibliotecasdart:core
Corregido

Released: 2025-11-12

Las funciones Uri.parseIPv4Address y Uri.parseIPv6Address ya no permiten incorrectamente ceros a la izquierda en direcciones IPv4.

Bibliotecasdart:core
Obsoleto

Released: 2025-11-12

La capacidad de implementar RegExp y RegExpMatch está obsoleta y se eliminará en una versión futura.

Bibliotecasdart:io
Obsoleto

Released: 2025-11-12

IOOverrides ya no se puede implementar, pero aún se puede extender.

Bibliotecas dart:js_interop
Cambiado

Released: 2025-11-12

La extensión Uint16ListToJSInt16Array ha sido renombrada a Uint16ListToJSUint16Array.

Bibliotecas dart:js_interop
Cambiado

Released: 2025-11-12

La extensión JSUint16ArrayToInt16List ha sido renombrada a JSUint16ArrayToUint16List.

Bibliotecas dart:js_interop
Cambiado

Released: 2025-11-12

La función Function.toJSCaptureThis ahora resulta en verificaciones adicionales en tiempo de compilación para coincidir con Function.toJS. Si la función no tiene un tipo conocido estáticamente, tiene tipos no admitidos en su firma, incluye parámetros de tipo, o tiene cualquier parámetro nombrado, la llamada resultará en un error de tiempo de compilación.

HerramientasSDK
Cambiado

Released: 2025-11-12

La CLI de dart y Dart VM ahora son ejecutables separados, con el ejecutable y proceso de Dart VM puro llamado dartvm. Los programas de Dart aún deben ejecutarse con dart run.

HerramientasSDK
Cambiado

Released: 2025-11-12

Los subcomandos de la herramienta dart, como dart format y dart compile ahora ejecutan snapshots compilados AOT de las herramientas subyacentes. No debería haber diferencia funcional fuera de las mejoras de rendimiento, pero si encuentras incompatibilidades, por favor repórtalas.

HerramientasSDK
Eliminado Rompimiento

Released: 2025-11-12

La herramienta dart ya no está disponible para plataformas IA32 ya que el Dart SDK ya no admite IA32.

HerramientasAnalizador
Cambiado

Released: 2025-11-12

Usar miembros marcados como @experimental fuera del paquete en el que son declarados ahora resulta en una advertencia.

HerramientasAnalizador
Cambiado

Released: 2025-11-12

Las reglas de lint habilitadas en archivos de opciones de análisis incluidas ahora resultan en diagnósticos de lint incompatibles cuando es apropiado.

HerramientasAnalizador
Eliminado Rompimiento

Released: 2025-11-12

La anotación obsoleta @required de package:meta ya no está admitida. Para marcar un parámetro como requerido, usa la palabra clave required en su lugar.

HerramientasCompilación Wasm
Eliminado Rompimiento

Released: 2025-11-12

dart:js_util y package:js ya no son admitidos al compilar a WebAssembly. Invocar cualquier API de estas bibliotecas resultará en un error de tiempo de ejecución. Los usos deben migrarse a dart:js_interop y dart:js_interop_unsafe.

HerramientasCompilación Wasm
Cambiado

Released: 2025-11-12

Para coincidir con los compiladores JS, dartify cuando se compila a Wasm, ahora convierte objetos Promise de JS a objetos Future de Dart en lugar de objetos JSValue de Dart.

3.9

SDKCompilaciones modulares
Cambiado

Released: 2025-09-30

Esta versión de parche corrige una regresión de rendimiento en compilaciones modulares donde las llamadas estáticas están profundamente anidadas dentro de un closure.

SDKDart VM
Cambiado

Released: 2025-09-09

Esta versión de parche corrige un problema en Dart VM donde se podría inferir un tipo incorrecto para una variable de bucle.

SDKDDC
Cambiado

Released: 2025-08-27

Esta versión de parche corrige un problema en DDC donde los getters estáticos podrían ser invocados involuntariamente durante un hot reload.

SDK DevTools, ARM32, dependencias de git
Cambiado

Released: 2025-08-20

Esta versión de parche corrige problemas en DevTools, compilación ARM32 y dependencias de git usando tag_pattern.

SDKPromoción de tipos
Cambiado

Released: 2025-08-13

El sistema de tipos de Dart ahora asume seguridad de nulidad para promoción de tipos, alcanzabilidad y asignación definitiva. El servidor de análisis ahora está compilado AOT para un rendimiento mejorado. Se agregaron nuevos lints switch_on_type y unnecessary_unawaited, junto con una nueva anotación @awaitNotRequired.

LenguajeNull safety
Con versión de lenguaje Cambiado

Released: 2025-08-13

La seguridad de nulidad ahora se asume al calcular la promoción de tipos, alcanzabilidad y asignación definitiva. Como resultado, el análisis mejorado de código muerto podría causar que nuevos diagnósticos del analizador se activen en código existente que anteriormente pasó el análisis.

HerramientasLínea de comandos
Cambiado

Released: 2025-08-13

Algunos subcomandos de la herramienta dart, como dart analyze y dart fix ahora ejecutan snapshots compilados AOT de las herramientas subyacentes. No debería haber diferencia funcional fuera de las mejoras de rendimiento, pero si encuentras incompatibilidades, por favor repórtalas.

HerramientasPub
Con versión de lenguaje Corregido Nuevo

Released: 2025-08-13

El límite superior de la restricción del SDK de flutter en el paquete raíz de tu espacio de trabajo ahora se respeta. Si tu SDK actual no cumple con el límite especificado, dart pub get y otras acciones que recuperan dependencias fallarán.

HerramientasDart build
Experimental

Released: 2025-08-13

Construir un paquete de aplicación CLI con soporte experimental de activos nativos ahora requiere usar el subcomando dart build cli y especificar el punto de entrada de la aplicación con una nueva opción --target.

3.8

SDKDevTools, Hot Restart
Cambiado

Released: 2025-07-31

Esta versión de parche corrige problemas con la pantalla Network de DevTools y Hot Restart.

SDKDart2Wasm
Cambiado

Released: 2025-07-16

Esta versión de parche corrige un problema con el tamaño de los binarios compilados cruzadamente.

SDKDDC
Cambiado

Released: 2025-05-28

Esta versión de parche corrige un problema en DDC con variables late siendo capturadas incorrectamente dentro de cuerpos de funciones asíncronas.

SDKElementos con conocimiento de nulidad
Cambiado

Released: 2025-05-20

Se introdujeron elementos con conocimiento de nulidad para colecciones, facilitando agregar elementos condicionalmente basándose en nulidad. También se agregó Iterable.withIterator, HttpClientBearerCredentials y varias mejoras del analizador incluyendo nuevas correcciones rápidas y lints.

LenguajeColecciones
Nuevo

Released: 2025-05-20

Se agregó soporte para elementos con conocimiento de nulidad en literales de colección. Un elemento con conocimiento de nulidad evalúa una expresión y, si el resultado no es null, inserta el valor en la colección circundante.

Bibliotecasdart:html
Eliminado Rompimiento

Released: 2025-05-20

El constructor Element.created ha sido eliminado.

Bibliotecasdart:html
Obsoleto

Released: 2025-05-20

Las clases nativas en dart:html, como HtmlElement, ya no pueden ser extendidas.

HerramientasAnalizador
Obsoleto

Released: 2025-05-20

La regla de lint avoid_null_checks_in_equality_operators está obsoleta y debe eliminarse de los archivos analysis_options.yaml.

Herramientas Compilador de JavaScript de desarrollo
Cambiado

Released: 2025-05-20

Ahora lanza un error de tiempo de ejecución cuando se hace tear-off de un constructor de fábrica redirigido y uno de sus parámetros opcionales no nulos no recibe valor. En el futuro esto probablemente será un error de tiempo de compilación.

HerramientasCompilador de JavaScript de producción
Experimental Eliminado Rompimiento

Released: 2025-05-20

Las banderas --experiment-new-rti y --use-old-rti ya no son admitidas.

HerramientasFormateador
Con versión de lenguaje Cambiado Corregido Nuevo

Released: 2025-05-20

El formateador se basa en la reescritura de la versión anterior, incorporando comentarios, correcciones de errores y mejoras adicionales. Ahora automatiza de manera inteligente la colocación de comas finales, decidiendo si dividir construcciones en lugar de forzarlas. La actualización también incluye cambios de estilo para ajustar y mejorar la salida del código.

3.7

SDKServidor de análisis
Cambiado

Released: 2025-04-16

Esta versión de parche corrige una regresión de rendimiento en el servidor de análisis.

SDKdart2wasm
Cambiado

Released: 2025-03-12

Esta versión de parche corrige un error en dart2wasm relacionado con funciones integradas js-string con tipos de parámetros no nulos.

SDKDevTools, DDC, CFE
Cambiado

Released: 2025-02-26

Esta versión de parche corrige errores en el perfilador de red de DevTools, constructores de fábrica DDC con funciones locales genéricas, y marcado de variables comodín en el CFE.

SDKVariables comodín
Cambiado

Released: 2025-02-12

Se introdujeron variables comodín, un nuevo estilo "alto" para el formateador dart, y se oficializaron como obsoletas las bibliotecas web más antiguas en favor de package:web y dart:js_interop. También se implementaron numerosas mejoras del analizador y nuevos lints.

LenguajeVariables comodín
Con versión de lenguaje Cambiado Nuevo

Released: 2025-02-12

Las variables comodín ahora son admitidas. Una variable comodín es una variable local o parámetro llamada _. Las variables comodín no son vinculantes, por lo que pueden declararse múltiples veces sin colisiones. Por ejemplo:

dart
Foo(_, this._, super._, void _()) {}
LenguajePromoción de tipos
Cambiado

Released: 2025-02-12

El análisis de alcanzabilidad ahora considera si un campo es promovido de tipo a Null usando is o as. Esto hace que el sistema de tipos sea más autoconsistente, porque refleja el comportamiento de las variables locales promovidas. Este cambio no se espera que haga ninguna diferencia en la práctica.

BibliotecasBibliotecas web
Obsoleto

Released: 2025-02-12

Las bibliotecas dart:html, dart:indexed:db, dart:svg, dart:web_audo, dart:web_gl y dart:js están oficialmente obsoletas. Se espera que sean eliminadas en una versión futura. Los proyectos deben migrar para usar package:web y dart:js_interop. Para aprender más, consulta Migrate to package:web.

BibliotecasInteroperabilidad JS
Obsoleto

Released: 2025-02-12

Las bibliotecas dart:js, dart:js_util y package:js están oficialmente obsoletas. Se espera que sean eliminadas en una versión futura. Los proyectos deben migrar para usar dart:js_interop. Para aprender más, consulta el uso de interoperabilidad JS.

HerramientasAnalizador
Eliminado Rompimiento

Released: 2025-02-12

Las reglas de lint package_api_docs y unsafe_html han sido eliminadas y deben eliminarse de los archivos analysis_options.yaml.

HerramientasFormateador
Con versión de lenguaje Cambiado

Released: 2025-02-12

El comando dart format ahora está vinculado a la versión del lenguaje a partir de 3.7. Si la versión del lenguaje de un archivo de entrada es 3.7 o posterior, el código se formatea con el nuevo estilo alto.

El nuevo estilo se parece al estilo que obtienes cuando agregas comas finales a listas de argumentos, excepto que ahora el formateador agregará y eliminará esas comas por ti. Cuando una lista de argumentos o parámetros se divide, se formatea así:

dart
longFunction(
  longArgument,
  anotherLongArgument,
);
HerramientasFormateador
Eliminado Rompimiento

Released: 2025-02-12

La bandera --fix para dart format ya no es admitida. Para aplicar correcciones similares y más, configura tus opciones de análisis y ejecuta dart fix.

HerramientasFormateador
Obsoleto

Released: 2025-02-12

La opción --line-length para dart format ha sido obsoleta y establecida para ser eliminada. Todos los usos deben migrarse a la nueva opción --page-width.

3.6

SDK HttpServer, Dart Format, DevTools, Dart Fix
Cambiado

Released: 2025-01-30

Esta versión de parche corrige errores en codificación de respuesta de HttpServer, análisis de separadores de dígitos de dart format, analíticas de DevTools y aplicación de dart fix.

SDK Pub get, dart2wasm, opciones de análisis
Cambiado

Released: 2025-01-08

Esta versión de parche corrige problemas con pub get en espacios de trabajo, fallos de compilación AOT/dart2wasm y descubrimiento de opciones de análisis en espacios de trabajo.

SDKDigit separators
Cambiado

Released: 2024-12-11

Se introdujeron separadores de dígitos para literales numéricos, se mejoró la inferencia de tipos de expresiones throw y se agregó soporte para espacios de trabajo pub. También se agregaron nuevos constructores y métodos JSArray en dart:js_interop, y varios nuevos lints y asistentes.

LenguajeDigit separators
Nuevo

Released: 2024-12-11

Se agregó soporte para guiones bajos separadores de dígitos (_) al lenguaje. Los separadores de dígitos mejoran la legibilidad de literales numéricos largos.

dart
var m = 1__000_000__000_000__000_000;
LenguajeInferencia de tipos
Cambiado

Released: 2024-12-11

El contexto usado por Dart para realizar inferencia de tipos en el operando de una expresión throw ha sido cambiado del "tipo desconocido" a Object. Esto hace que el sistema de tipos sea más autoconsistente, porque refleja el hecho de que no es legal lanzar null. Este cambio no se espera que haga ninguna diferencia en la práctica.

Bibliotecasdart:io
Eliminado Rompimiento

Released: 2024-12-11

El constructor Platform() ha sido eliminado. Todas las instanciaciones de Platform deben eliminarse.

Bibliotecasdart:io
Cambiado

Released: 2024-12-11

HttpClient ahora responde a una redirección que falta un encabezado "Location" lanzando una RedirectException en lugar de un StateError.

HerramientasAnalizador
Obsoleto

Released: 2024-12-11

Las reglas de lint package_api_docs y unsafe_html han sido obsoletas y están establecidas para ser eliminadas en Dart 3.7.

HerramientasFront-end del compilador
Cambiado

Released: 2024-12-11

El compilador de Dart ahora calcula los cierres superior e inferior de esquemas de tipos justo antes de pasarlos al procedimiento de prueba de subtipos. Antes de Dart 3.6, el compilador los calculaba al principio de los cálculos de límites superior e inferior. El analizador ya seguía este comportamiento, por lo que las aplicaciones que ya pasan el análisis es poco probable que se vean afectadas por este cambio.

HerramientasCompilador Wasm
Cambiado

Released: 2024-12-11

La condición dart.library.js ahora es false en importaciones condicionales al compilar a WebAssembly. La condición dart.library.js_interop debe usarse en su lugar.

HerramientasFormateador
Cambiado

Released: 2024-12-11

Los siguientes cambios podrían resultar en pequeños cambios de formato al ejecutar dart format con un SDK de Dart 3.6 o posterior:

HerramientasFormateador
Cambiado

Released: 2024-12-11

Preservar parámetros de tipo en formales de tipo función de estilo antiguo que también usan this. o super..

HerramientasFormateador
Corregido

Released: 2024-12-11

Formatear correctamente importaciones con cláusulas as y if.

HerramientasPub
Cambiado

Released: 2024-12-11

dart pub publish ahora advierte si los archivos rastreados en git tienen cambios sin confirmar.

3.5

SDKDevTools
Cambiado

Released: 2024-09-11

Esta versión de parche corrige problemas con OOMs de la herramienta de memoria de DevTools, barras de pestañas faltantes en IntelliJ/Android Studio y notas de versión persistentes.

SDKDart VM
Cambiado

Released: 2024-08-28

Esta versión de parche corrige errores en ZLibDecoder, ejecutar dart desde PATH y raíces de contexto del servidor de análisis en espacios de trabajo multipaquete.

SDKDart2Wasm
Cambiado

Released: 2024-08-14

Esta versión de parche corrige problemas con include: en analysis_options.yaml, mapas de fuente wasm y varios errores del compilador dart2wasm.

SDKSolo seguridad de nulidad sólida
Cambiado

Released: 2024-08-06

Se alineó la inferencia de tipos para expresiones await e if-null con el analizador. También se actualizó dart:core DateTime en web para almacenar microsegundos, se hizo SecurityContext final y se eliminó el soporte de seguridad de nulidad no sólida en la VM.

LenguajeInferencia de tipos
Cambiado Nuevo

Released: 2024-08-06

Cuando el contexto para una expresión await es dynamic, el contexto para el operando de la expresión ahora es FutureOr<_>. Esto se ha cambiado para coincidir con el comportamiento del analizador.

LenguajeInferencia de tipos
Cambiado Nuevo

Released: 2024-08-06

Cuando el contexto para una expresión if-null completa (e1 ?? e2) es dynamic, el contexto para e2 ahora es el tipo estático de e1. Esto se ha cambiado para coincidir con el comportamiento del analizador. El comportamiento anterior puede restaurarse proporcionando tipos explícitos.

Bibliotecasdart:core
Cambiado

Released: 2024-08-06

DateTime ahora almacena microsegundos en la plataforma web, coincidiendo más estrechamente con el comportamiento en plataformas nativas.

Bibliotecasdart:io
Cambiado

Released: 2024-08-06

SecurityContext ahora es final y ya no puede tener subclases.

Bibliotecas dart:js_interop
Cambiado

Released: 2024-08-06

importModule ahora acepta JSAny en lugar de String para admitir otros valores JS también, como objetos TrustedScriptURL.

Bibliotecas dart:js_interop
Cambiado

Released: 2024-08-06

isTruthy y not ahora devuelven JSBoolean en lugar de bool para ser consistentes con otros métodos de operador JS.

Bibliotecas dart:js_interop
Cambiado

Released: 2024-08-06

ExternalDartReference ya no implementa Object. En su lugar, ahora acepta un parámetro de tipo (T) con un límite de Object? para capturar el tipo del objeto Dart que es externalizado.

Bibliotecas dart:typed_data
Eliminado Rompimiento

Released: 2024-08-06

Las clases de vista no modificables para datos tipados han sido eliminadas. En lugar de usar los constructores de estas clases, usa los nuevos métodos asUnmodifiableView en listas de datos tipados.

Tiempo de ejecuciónSolo seguridad de nulidad sólida
Eliminado Rompimiento

Released: 2024-08-06

Dart VM ya no admite la seguridad de nulidad no sólida.

  • La opción CLI --no-sound-null-safety ha sido eliminada.
  • Las funciones Dart_NewListOf y Dart_IsLegacyType han sido eliminadas de la API de C.
Tiempo de ejecuciónAPI de C
Eliminado Rompimiento

Released: 2024-08-06

La función Dart_DefaultCanonicalizeUrl ha sido eliminada de la API de C.

3.4

SDKDart2Wasm
Cambiado

Released: 2024-06-12

Esta versión de parche corrige problemas con obtención de avisos pub, importaciones condicionales dart.library.ffi en dart2wasm y argumentos variádicos en FFI de MacOS Arm64.

SDKDart2Wasm
Cambiado

Released: 2024-06-05

Esta versión de parche corrige errores en análisis de DART_VM_OPTIONS de dart compile exe, límites de array.new_fixed() de dart2wasm y agrega soporte --enable-experiment a dart2wasm.

SDKDart2Wasm
Cambiado

Released: 2024-05-29

Esta versión de parche marca dart compile wasm como estable. También corrige errores en manejo de excepciones de dart2wasm, restauración de this en funciones asíncronas e implementa construcciones de flujo de control faltantes.

SDKCFE
Cambiado

Released: 2024-05-22

Esta versión de parche corrige un error de CFE que afecta aplicaciones web Flutter compiladas con dart2wasm y un error del cliente pub que interfiere con l10n de Flutter.

SDKAnálisis de tipos
Cambiado

Released: 2024-05-14

Se mejoró el análisis de tipos para expresiones condicionales, if-null y expresiones switch. También se agregó ExternalDartReference a dart:js_interop, se obsoletaron vistas de datos tipados no modificables y se eliminó waitFor de dart:cli.

LenguajeAnálisis de tipos
Cambiado

Released: 2024-05-14

Se agregaron mejoras al análisis de tipos de expresiones condicionales, expresiones y asignaciones if-null y expresiones switch.

LenguajePatrones
Cambiado

Released: 2024-05-14

El esquema de tipo de contexto de patrón para patrones de conversión ahora es _ (el tipo desconocido) en lugar de Object?.

LenguajeInferencia de tipos
Cambiado

Released: 2024-05-14

El esquema de tipo usado por los compiladores de Dart para realizar inferencia de tipos en el operando de un operador spread con conocimiento de nulidad (...?) en literales map y set se ha hecho anulable, para coincidir con lo que actualmente sucede en literales list.

Bibliotecasdart:cli
Experimental Eliminado Rompimiento

Released: 2024-05-14

La función waitFor ha sido eliminada.

Bibliotecas dart:html, dart:indexed:db, dart:svg, dart:web_audo, dart:web_gl
Obsoleto

Released: 2024-05-14

Estas bibliotecas ahora están marcadas como heredadas y verán menos soporte en el futuro. Los nuevos proyectos deberían preferir usar package:web y dart:js_interop. Para aprender más, consulta Migrate to package:web.

Bibliotecasdart:js
Obsoleto

Released: 2024-05-14

Esta biblioteca ahora está marcada como heredada y verá menos soporte en el futuro. Los usos deben migrarse a dart:js_interop y dart:js_interop_unsafe. Para aprender más, consulta /go/next-gen-js-interop.

Bibliotecasdart:js_util
Obsoleto

Released: 2024-05-14

Esta biblioteca ahora está marcada como heredada y verá menos soporte en el futuro. Los usos deben migrarse a dart:js_interop y dart:js_interop_unsafe. Para aprender más, consulta /go/next-gen-js-interop.

Bibliotecasdart:io
Nuevo Cambiado

Released: 2024-05-14

Stdout tiene un nuevo campo lineTerminator, que permite a los desarrolladores controlar el final de línea usado por stdout y stderr. Las clases que implementan Stdout deben definir el campo lineTerminator. Las semánticas predeterminadas de stdout y stderr no cambian.

Bibliotecasdart:io
Obsoleto

Released: 2024-05-14

La propiedad FileSystemDeleteEvent.isDirectory. Siempre devuelve false.

Bibliotecas dart:typed_data
Obsoleto

Released: 2024-05-14

Las clases de vista no modificables para datos tipados están obsoletas. En lugar de usar los constructores de estas clases, usa los nuevos métodos asUnmodifiableView en listas de datos tipados.

HerramientasCompilador de JavaScript de producción
Experimental Obsoleto

Released: 2024-05-14

Ahora debes especificar un formato para la opción CLI --dump-info de binary o json. El formato json está obsoleto y podría eliminarse en una versión futura de Dart.

HerramientasCompilador Wasm
Experimental

Released: 2024-05-14

Varios argumentos CLI de dart compile wasm han sido actualizados, eliminados o reemplazados. Para aprender más, ejecuta dart compile wasm --verbose --help.

Tiempo de ejecuciónDart VM
Eliminado Rompimiento

Released: 2024-05-14

Dart VM ya no admite cadenas externas. Como resultado, las funciones Dart_IsExternalString, Dart_NewExternalLatin1String y Dart_NewExternalUTF16String han sido eliminadas de la API de C de Dart.

3.3

SDKDart2Wasm
Cambiado

Released: 2024-04-17

Esta versión de parche corrige un problema con interoperabilidad JS en dart2wasm donde las anotaciones @JS en bibliotecas envolventes se usaban incorrectamente.

SDKDart VM
Cambiado

Released: 2024-03-27

Esta versión de parche corrige un fallo de Dart VM en CPUs Windows más antiguas que carecen de SSE4.1.

SDKCFE
Cambiado

Released: 2024-03-20

Esta versión de parche corrige errores en el CFE relacionados con fallos de compilación incremental y fábricas redirigidas en tipos de extensión, y un problema de VM con DateTime.timeZoneName en Windows.

SDKDart2js
Cambiado

Released: 2024-03-06

Esta versión de parche corrige un problema de dart2js con constructores de literales de objeto en tipos de extensión de interoperabilidad y deshabilita ciertos tipos de extensión en expresiones await.

SDKTipos de extensión
Cambiado

Released: 2024-02-15

Se introdujeron tipos de extensión para wrappers de costo cero, se mejoró la promoción de campos privados y se agregaron nuevas características a dart:ffi y dart:js_interop, incluyendo Native.addressOf y importModule.

SDKExperimentos
Experimental Eliminado Rompimiento

Released: 2024-02-15

Los siguientes experimentos ahora están retirados ya que se lanzaron en Dart 3 y ya no son necesarios con una versión de lenguaje de 3.0 o superior. La configuración de ellos debe eliminarse de las opciones de análisis, comandos CLI y configuraciones de IDE.

  • patterns
  • records
  • class-modifers
  • sealed-class
LenguajeTipos de extensión
Nuevo

Released: 2024-02-15

Se agregó soporte para tipos de extensión. Los tipos de extensión son una nueva característica en Dart que permite el envoltorio de costo cero de un tipo existente. Son similares a clases wrapper y métodos de extensión, pero con diferencias de implementación y compensaciones diferentes.

dart
extension type Meters(int value) {
  String get label => '${value}m';
  Meters operator +(Meters other) => Meters(value + other.value);
}

void main() {
  var m = Meters(42); // Has type `Meters`.
  var m2 = m + m; // OK, type `Meters`.
  // int i = m; // Compile-time error, wrong type.
  // m.isEven; // Compile-time error, no such member.
  assert(identical(m, m.value)); // Succeeds.
}
LenguajePromoción de campos privados
Cambiado

Released: 2024-02-15

Los getters abstractos ahora son promovibles bajo las reglas de promoción de campos finales privados, si no hay declaraciones conflictivas.

Bibliotecasdart:cli
Experimental Obsoleto

Released: 2024-02-15

La función waitFor permanece obsoleta por otra versión y está programada para eliminación en Dart 3.4.

Bibliotecasdart:ffi
Obsoleto

Released: 2024-02-15

Los métodos de aritmética de punteros elementAt en tipos Pointer están obsoletos. Migra a los operadores - y + en su lugar.

Bibliotecasdart:ffi
Experimental Eliminado Rompimiento

Released: 2024-02-15

La anotación previamente obsoleta @FfiNative ha sido eliminada. Los usos deben actualizarse para usar la anotación @Native.

Bibliotecasdart:html
Cambiado

Released: 2024-02-15

En lugar de usar HttpRequest directamente, ahora se recomienda usar package:http.

Bibliotecasdart:io
Cambiado

Released: 2024-02-15

En lugar de usar HttpClient directamente, ahora se recomienda usar package:http.

Bibliotecas dart:js_interop
Experimental

Released: 2024-02-15

Los tipos JS como JSAny tienen nuevos tipos de representación específicos del compilador.

Bibliotecas dart:js_interop
Experimental

Released: 2024-02-15

Las clases @staticInterop definidas por el usuario ya no pueden implementar JSAny o JSObject. Los usos deben migrarse a JSObject.fromInteropObject o ser definidos como tipos de extensión.

Bibliotecas dart:js_interop
Experimental

Released: 2024-02-15

JSArray y JSPromise ahora tienen parámetros genéricos.

Bibliotecas dart:js_interop
Experimental

Released: 2024-02-15

Varios miembros de extensión fueron movidos o renombrados. Para aprender sobre las extensiones actualizadas, consulta JSAnyUtilityExtension y JSAnyOperatorExtension.

Bibliotecas dart:typed_data
Obsoleto Nuevo

Released: 2024-02-15

Las clases de vista no modificables para datos tipados estarán obsoletas en Dart 3.4. En lugar de usar los constructores de estas clases, usa los nuevos métodos asUnmodifiableView en listas de datos tipados.

Bibliotecas dart:nativewrappers
Experimental

Released: 2024-02-15

Todas las clases wrapper nativas ahora están marcadas como base para que ninguna de sus subtipos pueda ser implementada.

HerramientasCompilador de JavaScript de producción
Obsoleto

Released: 2024-02-15

La Invocation que se pasa a noSuchMethod ya no tiene un memberName minificado, incluso cuando se compila con --minify.

HerramientasCompilador Wasm
Experimental

Released: 2024-02-15

No se permite importar bibliotecas de interoperabilidad JS heredadas. Prefiere usar dart:js_interop y dart:js_interop_unsafe en su lugar.

HerramientasAnalizador
Experimental

Released: 2024-02-15

Las directivas de comentario dart doc inválidas ahora son reportadas por el analizador.

HerramientasAnalizador
Cambiado

Released: 2024-02-15

Debido a mejoras en la promoción de tipos, los siguientes diagnósticos del analizador podrían activarse en código existente que anteriormente pasó el análisis:

  • unnecessary_non_null_assertion
  • unnecessary_cast
  • invalid_null_aware_operator
HerramientasLinter
Eliminado Rompimiento

Released: 2024-02-15

Los lints iterable_contains_unrelated_type y list_remove_unrelated_type fueron eliminados. Considera migrar al lint expandido collection_methods_unrelated_type.

HerramientasLinter
Eliminado Rompimiento

Released: 2024-02-15

Los siguientes lints son eliminados debido a que ya no son necesarios con seguridad de nulidad sólida. Debes eliminar su configuración de tus archivos analysis_options.yaml y cualquier comentario de ignorar.

  • always_require_non_null_named_parameters
  • avoid_returning_null
  • avoid_returning_null_for_future

3.2

SDKDart VM
Cambiado

Released: 2023-12-06

Esta versión de parche corrige problemas con campos finales en contextos constantes, actualiza DevTools y corrige fallos de snapshots AOT en ciertas CPUs ARM/x86-64.

SDKAnalizador
Cambiado

Released: 2023-11-29

Esta versión de parche ajusta los cálculos de nulidad en el algoritmo de límite superior y corrige el autocompletado de código de cierre faltante en editores basados en LSP.

SDKDart doc
Cambiado

Released: 2023-11-22

Esta versión de parche corrige errores en generación de dart doc, análisis de arreglos JSON causando segfaults en flutter test y actualiza DevTools.

SDKPromoción de campos privados
Cambiado

Released: 2023-11-15

Se introdujo la promoción de campos privados, permitiendo que campos finales privados sean promovidos a tipos no nulos. También incluye cambios rompimiento a puntos de división de patrones refutables, deshabilitó waitFor por defecto y cambió el tipo de retorno de utf8.encode a Uint8List.

LenguajePromoción de campos privados
Nuevo

Released: 2023-11-15

Se expandió la promoción de tipos para trabajar en campos finales privados. Anteriormente solo disponible para variables locales y parámetros, ahora los campos finales privados pueden promover a tipos no nulos a través de verificaciones de nulidad y pruebas is. Por ejemplo, el siguiente código ahora es sólido:

dart
class Example {
  final int? _privateField;

  Example(this._privateField);

  void f() {
    if (_privateField != null) {
      // _privateField has now been promoted; you can use it without
      // null checking it.
      int i = _privateField; // OK
    }
  }
}

// Private field promotions also work from outside of the class:
void f(Example x) {
  if (x._privateField != null) {
    int i = x._privateField; // OK
  }
}

Para más información sobre cuándo los campos finales privados pueden y no pueden promover, consulta Fixing type promotion failures.

LenguajePromoción de tipos
Con versión de lenguaje Corregido

Released: 2023-11-15

Se corrigieron inconsistencias en el comportamiento de promoción de tipos de declaraciones if-case donde el valor contra el que se coincide lanza una excepción.

LenguajePatrones
Con versión de lenguaje Corregido

Released: 2023-11-15

Se cambió el punto de división para patrones refutables al patrón de nivel superior para que la promoción de tipos en declaraciones if-case sea consistente independientemente de si el scrutinee podría lanzar una excepción.

Bibliotecasdart:cli
Experimental Obsoleto

Released: 2023-11-15

Se obsoletó la función waitFor.

Bibliotecasdart:convert
Cambiado

Released: 2023-11-15

Se cambiaron los tipos de retorno de utf8.encode() y Utf8Codec.encode() de List<int> a Uint8List.

Bibliotecas dart:developer
Obsoleto

Released: 2023-11-15

Se obsoletó el método Service.getIsolateID.

Bibliotecasdart:ffi
Cambiado

Released: 2023-11-15

Se cambió NativeCallable.nativeFunction para que las llamadas ahora lancen un error si el receptor ya está cerrado, en lugar de devolver nullptr.

Bibliotecasdart:io
Cambiado

Released: 2023-11-15

Se eliminaron los espacios en blanco finales de los encabezados HTTP.

Bibliotecasdart:io
Cambiado

Released: 2023-11-15

Se insertó un espacio en el punto de plegado de valores de encabezado plegados que HttpClientResponse.headers y HttpRequest.headers devuelven.

Bibliotecas dart:js_interop
Experimental Eliminado Rompimiento

Released: 2023-11-15

JSNumber.toDart a favor de toDartDouble y toDartInt.

Bibliotecas dart:js_interop
Experimental Eliminado Rompimiento

Released: 2023-11-15

Object.toJS a favor de Object.toJSBox.

Bibliotecas dart:js_interop
Cambiado Experimental

Released: 2023-11-15

Se restringieron las APIs de interoperabilidad JS externas usando dart:js_interop a un conjunto de tipos permitidos.

Bibliotecas dart:js_interop
Cambiado Experimental

Released: 2023-11-15

Se prohibió el uso de isNull y isUndefined en dart2wasm.

Bibliotecas dart:js_interop
Cambiado Experimental

Released: 2023-11-15

Se cambiaron las APIs typeofEquals y instanceof para que ambas devuelvan bool en lugar de JSBoolean. Además, typeofEquals ahora toma String en lugar de JSString.

Bibliotecas dart:js_interop
Cambiado Experimental

Released: 2023-11-15

Se cambiaron los tipos JSAny y JSObject para que solo sean implementables, no extensibles, por tipos @staticInterop del usuario.

Bibliotecas dart:js_interop
Cambiado Experimental

Released: 2023-11-15

Se cambió JSArray.withLength para tomar int en lugar de JSNumber.

Herramientas Compilador de JavaScript de desarrollo
Nuevo

Released: 2023-11-15

Se agregaron interceptores para tipos JavaScript Symbol y BigInt; ya no deben usarse con clases package:js.

HerramientasCompilador de JavaScript de producción
Nuevo

Released: 2023-11-15

Se agregaron interceptores para tipos JavaScript Symbol y BigInt; ya no deben usarse con clases package:js.

HerramientasAnalizador
Con versión de lenguaje Cambiado

Released: 2023-11-15

La promoción de campos finales privados podría causar que las siguientes advertencias del analizador se activen en código existente que anteriormente pasó el análisis:

dart
class C {
  final num? _x = null;
  void test() {
    if (_x != null) {
      print(_x! * 2); // unnecessary_non_null_assertion
      print(_x?.abs()); // invalid_null_aware_operator
    }
    if (_x is int) {
      print((_x as int).bitLength); // unnecessary_cast
    }
  }
}

3.1

SDKDart2js
Cambiado

Released: 2023-10-25

Esta versión de parche corrige un problema que afecta a Dart compilado a JavaScript ejecutándose en Node.js 21.

SDKDart VM
Cambiado

Released: 2023-10-18

Esta versión de parche corrige un problema de Dart VM donde los valores de variables no eran visibles durante la depuración.

SDKDart2js
Cambiado

Released: 2023-09-27

Esta versión de parche corrige un fallo de dart2js con fábricas @staticInterop, evita conflictos de símbolos en la VM independiente y corrige el acceso lento a variables durante la depuración.

SDKDart2js
Cambiado

Released: 2023-09-13

Esta versión de parche corrige un fallo de dart2js con patrones de registro tipados en inicializadores de campo y corrige pausas de excepciones no manejadas en el depurador.

SDKAnalizador
Cambiado

Released: 2023-09-07

Esta versión de parche corrige un error del analizador que impedía que patrones de registro anidados usaran la sintaxis abreviada de desestructuración.

SDK dart:async, dart:io
Cambiado

Released: 2023-08-16

Se agregaron cambios rompimiento a modificadores de clase en dart:async y dart:io, se introdujo NativeCallable para FFI y se hicieron varias actualizaciones a dart:core y dart:js_interop.

Bibliotecasdart:async
Nuevo

Released: 2023-08-16

Se agregó el modificador interface a clases puramente abstractas: MultiStreamController, StreamConsumer, StreamIterator y StreamTransformer.

Bibliotecasdart:io
Nuevo

Released: 2023-08-16

Se agregó sameSite a la clase Cookie y se agregó la clase SameSite.

Bibliotecasdart:io
Obsoleto

Released: 2023-08-16

FileSystemEvent es sealed. Esto significa que FileSystemEvent no puede ser extendido o implementado.

Bibliotecas dart:js_interop
Experimental Eliminado Rompimiento

Released: 2023-08-16

ObjectLiteral; crea un literal de objeto sin miembros nombrados usando {}.jsify().

Bibliotecaspackage:js
Obsoleto

Released: 2023-08-16

Los miembros external @staticInterop y los miembros de extensión external ya no pueden usarse como tear-offs. Declara un closure o un método no external que llame a estos miembros, y usa eso en su lugar.

Bibliotecaspackage:js
Obsoleto

Released: 2023-08-16

Los miembros external @staticInterop y los miembros de extensión external generarán código JS ligeramente diferente para métodos que tienen parámetros opcionales.

3.0

SDKDart2js
Cambiado

Released: 2023-07-26

Esta versión de parche corrige un error de dart2js que causa TypeError o NoSuchMethodError al usar registros.

SDKAnalizador
Cambiado

Released: 2023-07-12

Esta versión de parche corrige problemas con análisis de flujo, bucles infinitos en compilaciones web que involucran registros y fugas de memoria en el analizador.

SDKFrontend
Cambiado

Released: 2023-06-14

Esta versión de parche corrige una conversión incorrecta en el front-end que causa fallos de dart2js durante compilaciones web de Flutter.

SDKDart format
Cambiado

Released: 2023-06-07

Esta versión de parche corrige dart format para tipos de registro anulables sin campos y errores al usar registros en modo de desarrollo web.

SDKFrontend
Cambiado

Released: 2023-02-07

Esta versión de parche corrige fallos del compilador AOT, problemas de coincidencia de patrones, agrega modificadores interface faltantes y mejora el soporte de linter.

SDKDart2js
Cambiado

Released: 2023-05-24

Esta versión de parche corrige fallos de dart2js con expresiones switch en registros, agrega chips de modificador de clase a dart doc y corrige bucles infinitos del analizador.

SDKCompilador
Cambiado

Released: 2023-05-17

Esta versión de parche corrige fallos del compilador con fábricas redirigidas y FFI, fallos de dart2js con funciones locales y registros, y varios otros errores.

SDKDart 3
Cambiado

Released: 2023-05-10

Se introdujeron características principales del lenguaje incluyendo registros, patrones, modificadores de clase y seguridad de nulidad 100% sólida. También se hicieron muchas otras mejoras y cambios rompimiento en toda la plataforma.

LenguajePatrones
Nuevo

Released: 2023-05-10

Se agregó soporte para patrones, una nueva categoría de gramática que te permite coincidir y desestructurar valores.

LenguajeRegistros
Nuevo

Released: 2023-05-10

Se agregó soporte para registros, un nuevo tipo que te permite agregar múltiples valores de diferentes tipos en un solo retorno de función.

LenguajeModificadores de clase
Nuevo

Released: 2023-05-10

Se agregó soporte para modificadores de clase, un nuevo conjunto de palabras clave que te permiten controlar cómo se puede usar una clase o mixin.

LenguajeExpresiones switch
Nuevo

Released: 2023-05-10

Se agregó soporte para expresiones switch, una nueva forma de ramificación múltiple permitida donde se esperan expresiones.

LenguajePatrones
Nuevo

Released: 2023-05-10

Se agregó soporte para cláusulas if-case, un constructo condicional nuevo que coincide un valor con un patrón y ejecuta la rama then o else, dependiendo de si el patrón coincide.

LenguajePatrones
Con versión de lenguaje Cambiado

Released: 2023-05-10

Se cambió la interpretación de casos switch de expresiones constantes a patrones.

LenguajeModificadores de clase
Con versión de lenguaje Cambiado Rompimiento

Released: 2023-05-10

Las declaraciones de clase de bibliotecas que han sido actualizadas a Dart 3.0 ya no pueden usarse como mixins por defecto.

LenguajeParámetros nombrados
Con versión de lenguaje Cambiado Rompimiento

Released: 2023-05-10

Ahora es un error de tiempo de compilación si se usa un dos puntos (:) como el separador antes del valor predeterminado de un parámetro nombrado opcional. Usa un signo igual (=) en su lugar.

LenguajeFlujo de control
Cambiado Rompimiento

Released: 2023-05-10

Ahora es un error de tiempo de compilación si una declaración continue apunta a una etiqueta que no está adjunta a una declaración de bucle (for, do y while) o a un miembro switch.

Bibliotecas
Cambiado

Released: 2023-05-10

Las siguientes clases existentes se han convertido en clases mixin: Iterable, IterableMixin, IterableBase, ListMixin, SetMixin, MapMixin, LinkedListEntry, StringConversionSink.

Bibliotecasdart:async
Eliminado Rompimiento

Released: 2023-05-10

Las siguientes APIs han sido eliminadas:

dart:core + argumento onError eliminado de int.parse, double.parse y num.parse. + Deprecated.expires (usa Deprecated.message en su lugar).

  • proxy, Provisional, BidirectionalIterator clases y constantes. + Estos errores fueron eliminados: AbstractClassInstantiationError, CyclicInitializationError, NullThrownError, FallThroughError, CastError (usa TypeError), constructor predeterminado NoSuchMethodError (usa NoSuchMethod.withInvocation).

dart:async + DeferredLibrary (usa la sintaxis import ... deferred as ... en su lugar).

dart:developer + MAX_USER_TAGS eliminado de UserTag.

dart:html + document.registerElement y registerElement2

Bibliotecasdart:core
Obsoleto

Released: 2023-05-10

Constructor List: Obsoleto a favor de List.filled.

Bibliotecasdart:async
Eliminado Rompimiento

Released: 2023-05-10

Se eliminó la clase obsoleta DeferredLibrary.

Bibliotecas dart:collection
Con versión de lenguaje Cambiado

Released: 2023-05-10

Cambios en las bibliotecas de plataforma.

Bibliotecas dart:developer
Eliminado Rompimiento

Released: 2023-05-10

Se eliminó la constante obsoleta MAX_USER_TAGS. Usa maxUserTags en su lugar.

Bibliotecasdart:developer
Eliminado Rompimiento

Released: 2023-05-10

Se eliminaron las clases obsoletas Metrics y Metric ya que han estado rotas desde Dart 2.0.

Bibliotecas dart:developer
Eliminado Rompimiento

Released: 2023-05-10

Se eliminó la clase obsoleta Counter ya que ha estado rota desde Dart 2.0.

Bibliotecas dart:developer
Eliminado Rompimiento

Released: 2023-05-10

Se eliminó la clase obsoleta Gauge ya que ha estado rota desde Dart 2.0.

Bibliotecasdart:ffi
Experimental Obsoleto

Released: 2023-05-10

La anotación @FfiNative ahora está obsoleta. Los usos deben actualizarse para usar la anotación @Native.

Bibliotecasdart:html
Eliminado Rompimiento

Released: 2023-05-10

Se eliminaron los métodos obsoletos registerElement y registerElement2 en Document y HtmlDocument.

Bibliotecasdart:math
Con versión de lenguaje Obsoleto

Released: 2023-05-10

La interfaz Random solo se puede implementar, no extender.

Bibliotecasdart:io
Nuevo Cambiado

Released: 2023-05-10

Se actualizó NetworkProfiling para acomodar nuevos ids String que son introducidos en vm_service:11.0.0

LenguajeVersionado del lenguaje
Eliminado Rompimiento

Released: 2023-05-10

La versión 3.0 del Dart SDK eliminó el soporte para language versions anteriores a 2.12.

2.19

SDKVM
Cambiado

Released: 2023-03-29

Esta versión de parche corrige un fallo de Dart VM al leer un campo estático definido pero no inicializado.

SDKFFI
Cambiado

Released: 2023-03-22

Esta versión de parche corrige el uso roto de Dart_CObject_Type.

SDKVM
Cambiado

Released: 2023-03-08

Esta versión de parche corrige fallos de VM en dispositivos móviles causados por uso específico de RegExp.

SDKServidor de análisis
Cambiado

Released: 2023-03-01

Esta versión de parche actualiza la configuración de DDC y limita el número de complementos por contexto de análisis para prevenir un uso extremo de memoria en el Servidor de Análisis.

SDKVM
Cambiado

Released: 2023-02-08

Esta versión de parche corrige fallos de VM con cálculos mixtos double/float, fallos del compilador al alinear métodos con muchos parámetros opcionales y errores part_of_different_library en PackageBuildWorkspace.

SDKPub
Cambiado

Released: 2023-02-01

Esta versión de parche corrige el comportamiento de pub get con lockfiles más antiguos, detiene la reescritura de restricciones del SDK y corrige un fallo de VM causado por uso incorrecto de RegExp entre isolates.

SDKBibliotecas sin nombre
Cambiado

Released: 2023-01-24

Se introdujo soporte para bibliotecas sin nombre, se mejoró el análisis de flujo para código inalcanzable y se reportaron errores de tiempo de compilación para dependencias cíclicas durante inferencia de tipos de nivel superior.

LenguajeBibliotecas sin nombre
Nuevo

Released: 2023-01-25

Se agregó soporte para bibliotecas sin nombre. Las directivas de biblioteca, usadas para agregar comentarios de doc y anotaciones a nivel de biblioteca, ahora pueden y deben escribirse sin nombre:

dart
/// A really great test library.
@TestOn('browser')
library;
LenguajeAnálisis de flujo
Cambiado

Released: 2023-01-25

Se agregaron más indicadores de análisis de flujo para casos de código inalcanzable.

LenguajeAnálisis de flujo
Cambiado

Released: 2023-01-25

Se marcó código adicional como inalcanzable debido a los tipos Null y Never.

LenguajeNombres privados
Cambiado

Released: 2023-01-25

No delegar nombres privados inaccesibles a noSuchMethod.

LenguajeInferencia de tipos
Cambiado

Released: 2023-01-25

Reportar un error de tiempo de compilación para todas las dependencias cíclicas durante inferencia de tipos de nivel superior.

Bibliotecasdart:convert
Eliminado Rompimiento

Released: 2023-01-25

La API previamente obsoleta DEFAULT_BUFFER_SIZE en JsonUtf8Encoder ha sido eliminada.

Bibliotecas dart:developer
Eliminado Rompimiento

Released: 2023-01-25

Se eliminaron las APIs previamente obsoletas kInvalidParams, kExtensionError, kExtensionErrorMax y kExtensionErrorMin en ServiceExtensionResponse.

Bibliotecasdart:ffi
Cambiado

Released: 2023-01-25

Se cambió el argumento de tipo de tiempo de ejecución de Pointer a Never en preparación para eliminar completamente el argumento de tipo de tiempo de ejecución. Se cambió Pointer.toString para no reportar ningún argumento de tipo.

Bibliotecasdart:io
Cambiado

Released: 2023-01-25

No se permiten encabezados content-length negativos o hexadecimales.

Bibliotecasdart:io
Nuevo Cambiado

Released: 2023-01-25

File.create ahora toma un nuevo parámetro opcional exclusive bool, y cuando es true la operación fallará si el archivo objetivo ya existe.

Bibliotecasdart:io
Cambiado

Released: 2023-01-25

Llamar a ResourceHandle.toFile(), ResourceHandle.toSocket(), ResourceHandle.toRawSocket() o ResourceHandle.toRawDatagramSocket() más de una vez ahora lanza un StateError.

Bibliotecasdart:isolate
Cambiado

Released: 2023-01-25

Se revirtió SendPort.send a verificaciones estrictas en el contenido de mensajes al enviar mensajes entre isolates que no se sabe que comparten el mismo código.

Bibliotecasdart:mirrors
Eliminado Rompimiento

Released: 2023-01-25

Se eliminaron las APIs MirrorsUsed y Comment.

Bibliotecaspackage:js
Cambiado Obsoleto

Released: 2023-01-25

Cambios rompimiento a la característica de vista previa @staticInterop:

  • Se deshabilitaron clases con esta anotación de usar constructores generativos external. Consulta 48730 y 49941 para más detalles.
  • Se deshabilitaron clases con miembros de extensión externos de esta anotación de usar parámetros de tipo.
  • Las clases con esta anotación también deben tener la anotación @JS.
  • Las clases con esta anotación no pueden ser implementadas por clases sin esta anotación.
Bibliotecasdart2js
Obsoleto

Released: 2023-01-25

dart2js ya no admite URIs HTTP como entradas.

2.18

SDKVariables
Cambiado

Released: 2022-11-23

Esta versión de parche corrige problemas con setters de variables privadas en mixins en web y nulabilidad de parámetros de tipo en constructores de fábrica.

SDKHot reload
Cambiado

Released: 2022-11-02

Esta versión de parche corrige fallos durante hot reload.

SDKCobertura de código
Cambiado

Released: 2022-10-19

Esta versión de parche corrige una regresión en el cálculo de cobertura de código.

SDKUri
Cambiado

Released: 2022-09-28

Esta versión de parche corrige comportamiento incorrecto en Uri.parse y un fallo del compilador.

SDKInferencia de tipos
Cambiado

Released: 2022-09-14

Esta versión de parche corrige un fallo causado por una inferencia de tipos incorrecta.

SDKInferencia de tipos
Cambiado

Released: 2022-08-30

Se mejoró la inferencia de tipos para invocaciones genéricas con literales de función, se introdujeron cambios rompimiento en APIs de red de dart:io y se eliminaron herramientas independientes como dart2js y dartanalyzer.

LenguajeInferencia de tipos
Nuevo

Released: 2022-08-30

Inferencia de tipos mejorada. Este cambio permite el flujo de información entre argumentos en llamadas a funciones genéricas. Antes de 2.18, si no especificabas el tipo de un argumento en algunos métodos, Dart reportaba errores. Estos errores de tipo citaban ocurrencias potenciales de null. Con 2.18, el compilador infiere el tipo de argumento de otros valores en una invocación. No necesitas especificar el tipo de argumento en línea.

LenguajeMixins
Eliminado Rompimiento

Released: 2022-08-30

Se eliminó el soporte para mixin de clases que no extienden Object.

Bibliotecasdart:io
Cambiado

Released: 2022-08-30

Se cambió la propiedad uri de RedirectException en dart:io para ser anulable.

Bibliotecasdart:io
Eliminado Rompimiento

Released: 2022-08-30

Se eliminaron constantes en APIs de red de dart:io siguiendo la convención SCREAMING_CAPS.

Bibliotecasdart:io
Obsoleto

Released: 2022-08-30

Dart VM ya no restaura automáticamente la configuración inicial de la terminal al salir.

Herramientas
Eliminado Rompimiento

Released: 2022-08-30

Se discontinuó completamente el archivo .packages.

HerramientasLínea de comandos de Dart
Eliminado Rompimiento

Released: 2022-08-30

Se eliminaron las herramientas independientes dart2js y dartdevc.

HerramientasLínea de comandos de Dart
Eliminado Rompimiento

Released: 2022-08-30

Se eliminó la herramienta independiente dartanalyzer.

2.17

SDKDepurador
Cambiado

Released: 2022-08-24

Esta versión de parche corrige un fallo en el depurador.

SDKFlutter
Cambiado

Released: 2022-07-13

Esta versión de parche mejora el autocompletado de código para Flutter, corrige un fallo en ARM y corrige un fallo del compilador con parámetros Finalizable.

SDKAnalizador
Cambiado

Released: 2022-06-22

Esta versión de parche mejora el análisis de enums y declaraciones switch, y corrige un fallo del compilador al inicializar objetos Finalizable.

SDKDart VM
Cambiado

Released: 2022-06-01

Esta versión de parche corrige un fallo del compilador de Dart VM, autocompletado de código para anulaciones de métodos, dart pub login y análisis de enums mejorados.

SDKAnalizador
Cambiado

Released: 2022-05-18

Esta versión de parche corrige un fallo de complemento del analizador, soporte de FFI para variables late Finalizable y dart compile en macOS 10.15.

SDKEnums mejorados
Cambiado

Released: 2022-05-11

Se introdujeron enums mejorados con miembros, parámetros de inicializador super, argumentos nombrados en cualquier lugar y actualizaciones a dart:core y dart:ffi.

LenguajeEnums mejorados
Nuevo

Released: 2022-05-11

Se agregó soporte para enums mejorados con miembros. Los enums mejorados permiten que las declaraciones enum definan miembros incluyendo campos, constructores, métodos, getters, etc.

LenguajeParámetros super
Nuevo

Released: 2022-05-11

Se agregó soporte para parámetros de inicializador super. Los parámetros super te permiten evitar tener que pasar manualmente cada parámetro a la invocación super de un constructor no redirigido. En su lugar puedes usar parámetros super para reenviar parámetros a un constructor de superclase.

LenguajeParámetros nombrados
Nuevo

Released: 2022-05-11

Se agregó soporte para argumentos nombrados en cualquier lugar. Los argumentos nombrados ahora pueden intercalarse libremente con argumentos posicionales. Puedes escribir el siguiente código:

dart
void main() {
  test(skip: true, 'A test description', () {
    // Very long function body here...
  });
}
Bibliotecasdart:io
Nuevo

Released: 2022-05-11

Se agregó una nueva propiedad connectionFactory a HttpClient.

Bibliotecasdart:io
Corregido Nuevo

Released: 2022-05-11

Se agregó una nueva propiedad keyLog a HttpClient, que permite que las claves TLS se registren para propósitos de depuración.

Bibliotecasdart:io
Eliminado Rompimiento

Released: 2022-05-11

Se eliminaron constantes en dart:io siguiendo SCREAMING_CAPS

Bibliotecasdart:io
Nuevo

Released: 2022-05-11

Se agregó una nueva propiedad allowLegacyUnsafeRenegotiation a SecurityContext, que permite la renegociación TLS para sockets seguros de cliente.

HerramientasLínea de comandos de Dart
Obsoleto

Released: 2022-05-11

Se obsoletó la herramienta independiente dart2js.

HerramientasLínea de comandos de Dart
Obsoleto

Released: 2022-05-11

Se obsoletó la herramienta independiente dartdevc.

HerramientasLínea de comandos de Dart
Eliminado Rompimiento

Released: 2022-05-11

Se eliminó la herramienta independiente dartdoc.

2.16

SDKFlutter web
Cambiado

Released: 2022-03-24

Esta versión de parche corrige un fallo de dart2js al construir algunas aplicaciones web Flutter.

SDKFlutter AOT
Cambiado

Released: 2022-02-09

Esta versión de parche corrige un fallo del precompilador AOT al construir algunas aplicaciones Flutter.

SDKActualizaciones de herramientas
Cambiado

Released: 2022-02-03

Se agregó Error.throwWithStackTrace, enteros específicos Abi en FFI, se mejoró dart pub con concurrencia y nuevos comandos, y se obsoletaron herramientas independientes a favor de comandos dart.

Bibliotecasdart:io
Nuevo

Released: 2022-02-03

En Windows, Directory.rename ya no eliminará un directorio si newPath especifica uno. En su lugar, se lanzará una FileSystemException.

Bibliotecasdart:io
Eliminado Rompimiento

Released: 2022-02-03

Se eliminó la API Platform.packageRoot.

Bibliotecasdart:isolate
Eliminado Rompimiento

Released: 2022-02-03

Se eliminó la API Isolate.packageRoot.

HerramientasLínea de comandos de Dart
Obsoleto

Released: 2022-02-03

Se obsoletó la herramienta independiente dartanalyzer.

HerramientasLínea de comandos de Dart
Obsoleto

Released: 2022-02-03

Se obsoletó la herramienta independiente dartdoc.

HerramientasLínea de comandos de Dart
Eliminado Rompimiento

Released: 2022-02-03

Se eliminó la herramienta independiente obsoleta pub.

2.15

SDKFlutter AOT
Cambiado

Released: 2021-12-14

Esta versión de parche corrige un fallo de compilación AOT en algunas aplicaciones Flutter y problemas con dart pub publish para servidores con una ruta en la URL.

SDKConstructor tear-offs
Cambiado

Released: 2021-12-08

Se introdujeron tear-offs de constructor, literales de tipo genérico, instanciaciones explícitas de métodos genéricos y mejoras a enums de dart:core y herramientas de desarrollador.

LenguajeConstructor tear-offs
Nuevo

Released: 2021-12-08

Soporte mejorado para punteros de función, conocidos como tear-offs. En particular, los tear-offs de constructor ahora son admitidos.

Bibliotecasdart:io
Cambiado

Released: 2021-12-08

Se actualizó la clase SecurityContext para establecer la versión mínima del protocolo TLS a TLS1_2_VERSION (1.2) en lugar de TLS1_VERSION.

Bibliotecasdart:web_sql
Eliminado Rompimiento

Released: 2021-12-08

Se eliminó completamente la biblioteca dart:web_sql.

Bibliotecasdart:html
Eliminado Rompimiento

Released: 2021-12-08

Se eliminó window.openDatabase (relacionado con la eliminación de dart:web_sql arriba).

HerramientasLínea de comandos de Dart
Eliminado Rompimiento

Released: 2021-12-08

Se eliminó la herramienta independiente dart2native.

HerramientasLínea de comandos de Dart
Eliminado Rompimiento

Released: 2021-12-08

Se eliminó la herramienta independiente dartfmt.

HerramientasDart VM
Eliminado Rompimiento

Released: 2021-12-08

Se eliminó el soporte para extensiones nativas estilo dart-ext:

HerramientasDart VM
Cambiado

Released: 2021-12-08

Se agruparon los isolates generados a través de la API Isolate.spawn() para operar en el mismo montículo administrado y, por lo tanto, compartir varias estructuras de datos internas de la VM.

2.14

SDKAnalizador
Cambiado

Released: 2021-10-14

Esta versión de parche corrige una fuga de memoria de complementos del analizador y problemas con Dart VM cargando certificados expirados en Windows.

SDKRendimiento
Cambiado

Released: 2021-09-30

Esta versión de parche corrige una regresión de rendimiento de autocompletado de código e información de depuración emitida por Dart VM.

SDKDartdoc
Cambiado

Released: 2021-09-16

Esta versión de parche corrige fallos de dartdoc, mensajes de error para >>> en versiones de lenguaje más antiguas y rutas inválidas de pubspec.lock en Windows.

SDKRendimiento
Cambiado

Released: 2021-09-09

Esta versión de parche corrige el rendimiento de inicio de la herramienta de línea de comandos Dart en macOS ARM64 (Apple Silicon).

SDKDesplazamiento triple
Cambiado

Released: 2021-09-09

Se introdujo el operador de desplazamiento triple >>>, se eliminaron restricciones en argumentos de tipo para anotaciones y se agregaron nuevas características a dart:core y dart:ffi.

LenguajeOperadores
Nuevo

Released: 2021-09-08

Se agregó soporte para el operador de desplazamiento triple (>>>). Este nuevo operador funciona como >>, excepto que siempre llena los bits más significativos con ceros.

LenguajeAnotaciones
Cambiado

Released: 2021-09-08

Se eliminaron restricciones en argumentos de tipo para anotaciones. Puedes pasar argumentos de tipo a anotaciones y usar un tipo de función genérico como argumento de tipo. A partir de esta versión, puedes escribir el siguiente código:

dart
@TypeHelper<int>(42, "The meaning")
late List<T Function<T>(T)> idFunctions;
var callback = [<T>(T value) => value];
late S Function<S extends T Function<T>(T)>(S) f;
Bibliotecasdart:io
Cambiado

Released: 2021-09-08

Los callbacks setter .authenticate y .authenticateProxy en HttpClient ahora deben aceptar un argumento realm anulable (para código seguro de nulidad pre-migrado).

Bibliotecas dart:typed_data
Obsoleto

Released: 2021-09-08

La mayoría de los tipos expuestos por esta biblioteca ya no pueden ser extendidos, implementados o mezclados.

HerramientasDart VM
Nuevo

Released: 2021-09-08

Los Expandos, y los parámetros object de Dart_NewWeakPersistentHandle y Dart_NewFinalizableHandle, ya no aceptan Pointer y subtipos de Struct

HerramientasLínea de comandos de Dart
Obsoleto

Released: 2021-09-08

Se obsoletó la herramienta independiente dart2native

HerramientasLínea de comandos de Dart
Obsoleto

Released: 2021-09-08

Se obsoletó la herramienta independiente dartfmt.

Herramientasdart2js
Obsoleto

Released: 2021-09-08

dart2js ya no admite navegadores heredados, porque emite JavaScript ES6+ por defecto.

HerramientasCompilador de desarrollo de Dart
Cambiado

Released: 2021-09-08

Se cambiaron las relaciones de subtipado de clases package:js para ser más correctas y consistentes con Dart2JS.

2.13

SDKFallos del compilador
Cambiado

Released: 2021-06-28

Esta versión de parche corrige un fallo del compilador de Dart VM y un fallo del compilador DDC.

SDKFallos del compilador
Cambiado

Released: 2021-06-10

Esta versión de parche corrige un fallo del compilador Dart, un interbloqueo del servidor de análisis y un fallo del analizador al usar package:meta v1.4.0.

SDKInferencia de tipos
Cambiado

Released: 2021-05-25

Esta versión de parche corrige comportamiento incorrecto en CastMap y nulabilidad faltante de jerarquías de tipos recursivas en DDC.

SDKAlias de tipos
Cambiado

Released: 2021-05-18

Se introdujeron alias de tipo no función, mejoras a clases dart:collection y soporte FFI para structs empaquetados y arreglos en línea.

LenguajeAlias de tipos
Nuevo

Released: 2021-05-19

Se agregó soporte para alias de tipo para cualquier tipo, no solo funciones. Los alias de tipo solían funcionar solo para tipos de función pero ahora funcionan para cualquier tipo. Puedes usar el nuevo nombre creado con un alias de tipo en cualquier lugar donde el tipo original podría usarse.

Bibliotecasdart:ffi
Nuevo

Released: 2021-05-19

Se agregó soporte para arreglos en línea en structs FFI y structs empaquetados.

Bibliotecaspackage:js
Obsoleto

Released: 2021-05-19

Ya no es válido usar un String que coincida con una anotación @Native en una anotación @JS() para una clase de interoperabilidad JS no anónima.

2.12

SDKFallos del compilador
Cambiado

Released: 2021-04-15

Esta versión de parche corrige fallos del compilador de Dart VM al compilar inicializadores que contienen closures asíncronos.

SDKSeguridad
Cambiado

Released: 2021-04-14

Esta versión de parche corrige una vulnerabilidad de seguridad en dart:html relacionada con DOM clobbering (CVE-2021-22540).

SDKFallos de Flutter
Cambiado

Released: 2021-03-17

Esta versión de parche corrige fallos reportados por usuarios de Flutter 2.

SDKHTTPS
Cambiado

Released: 2021-03-10

Esta versión de parche corrige una excepción no manejada en conexiones HTTPS y un problema de tipificación en el operador typed_data +.

SDKSound null safety
Cambiado

Released: 2021-03-03

Se introdujo seguridad de nulidad sólida, FFI estable y muchas otras nuevas características y mejoras en toda la plataforma.

LenguajeNull safety
Cambiado

Released: 2021-03-03

La seguridad de nulidad ahora está habilitada por defecto en todo el código que no ha optado por salir. Cuando optas por seguridad de nulidad, los tipos en tu código son no nulos por defecto, lo que significa que las variables no pueden contener null a menos que digas que pueden. Con seguridad de nulidad, tus errores de desreferenciación null en tiempo de ejecución se convierten en errores de análisis en tiempo de edición.

LenguajeParche
Corregido

Released: 2021-03-03

Se corrigió un error de implementación donde this a veces sufriría promoción de tipo en extensiones.

Bibliotecasdart:ffi
Nuevo Con versión de lenguaje

Released: 2021-03-03

La biblioteca FFI ahora es estable.

Bibliotecasdart:ffi
Obsoleto

Released: 2021-03-03

Se obsoletaron invocaciones con un genérico T de sizeOf<T>, Pointer<T>.elementAt(), Pointer<T extends Struct>.ref y Pointer<T extends Struct>[]

Bibliotecasdart:ffi
Obsoleto

Released: 2021-03-03

Se obsoletó allocate en package:ffi, ya que ya no podrá invocar sizeOf<T> genéricamente.

Bibliotecasdart:ffi
Obsoleto

Released: 2021-03-03

Se obsoletaron subtipos de Struct sin ningún miembro nativo.

HerramientasDart VM
Cambiado

Released: 2021-03-03

Dart_WeakPersistentHandle ya no se autoelimina cuando el objeto referenciado es recolectado por el recolector de basura para evitar condiciones de carrera.

HerramientasDart VM
Eliminado Rompimiento Cambiado

Released: 2021-03-03

Se renombró Dart_WeakPersistentHandleFinalizer a Dart_HandleFinalizer y se eliminó su argumento handle.

HerramientasPub
Cambiado

Released: 2021-03-03

La restricción del Dart SDK ahora es required en pubspec.yaml.

2.10

SDKParche
Cambiado

Released: 2021-01-21

Esta versión de parche corrige un fallo en Dart VM.

SDKParche
Cambiado

Released: 2020-11-12

Esta versión de parche corrige un fallo en Dart VM.

SDKParche
Cambiado

Released: 2020-10-29

Esta versión de parche corrige cambios rompimiento en Chrome 86 que afectan DDC, errores del compilador con parámetros posicionales y fallos de compilación AOT.

SDKParche
Cambiado

Released: 2020-10-15

Esta versión de parche corrige un fallo del compilador DDC.

SDKParche
Cambiado

Released: 2020-10-06

Esta versión de parche corrige fallos en aplicaciones Flutter, comportamiento no determinista y TypeErrors no capturados en DDC.

SDKAPI de C unificada
Cambiado

Released: 2020-09-28

Se introdujo una API C unificada para la VM, Dart_FinalizableHandles y carga diferida de tipos en dart2js.

HerramientasDart VM
Cambiado

Released: 2020-10-01

Se renombró dart_api_dl.cc a dart_api_dl.c y se cambió a un archivo C puro.

2.9

SDKParche
Cambiado

Released: 2020-09-08

Corrige DDC para manejar un cambio rompimiento en Chrome.

SDKParche
Cambiado

Released: 2020-08-26

Corrige excepciones StackOverflow transitorias al compilar aplicaciones Flutter.

SDKParche
Cambiado

Released: 2020-08-12

Corrige excepciones no manejadas en algunas aplicaciones Flutter.

SDKActualizaciones de plataforma
Cambiado

Released: 2020-08-05

Actualiza dart:io con exit devolviendo Never y OSError implementando Exception. Mejora los métodos dart:html CssClassSet para devolver false en lugar de null. Los compiladores web ahora dan error en la importación de dart:mirrors.

Bibliotecasdart:convert
Cambiado

Released: 2020-08-05

Al codificar una cadena que contiene sustitutos sin pareja como UTF-8, los sustitutos sin pareja se codificarán como caracteres de reemplazo (U+FFFD).

Bibliotecasdart:convert
Cambiado

Released: 2020-08-05

Al decodificar UTF-8, los sustitutos codificados se tratarán como entrada malformada.

Bibliotecasdart:convert
Cambiado

Released: 2020-08-05

Se cambió el número de caracteres de reemplazo emitidos para secuencias de entrada malformadas para coincidir con el estándar de codificación WHATWG al decodificar UTF-8 con allowMalformed: true.

Bibliotecasdart:html
Cambiado

Released: 2020-08-05

CssClassSet.add() y CssClassSet.toggle ahora devuelven false en lugar de null si el CssClassSet corresponde a múltiples elementos.

Bibliotecasdart:mirrors
Cambiado

Released: 2020-08-05

Los compiladores web (dart2js y DDC) ahora producen un error de tiempo de compilación si dart:mirrors es importado.

HerramientasDart VM
Cambiado

Released: 2020-08-05

Al imprimir una cadena usando la función print, la implementación predeterminada imprimirá cualquier sustituto sin pareja en la cadena como caracteres de reemplazo (U+FFFD).

HerramientasDart VM
Cambiado

Released: 2020-08-05

La función Dart_StringToUTF8 en la API de Dart convertirá sustitutos sin pareja en caracteres de reemplazo.

2.8

SDKFugas de memoria
Cambiado

Released: 2020-06-04

Corrige posibles fugas de memoria en el front-end de Dart.

SDKFallos de Flutter
Cambiado

Released: 2020-05-28

Corrige fallos en aplicaciones Flutter, una regresión de seguimiento de pila y problemas de re-canonicalización de constantes.

SDKCompilación AOT
Cambiado

Released: 2020-05-13

Corrige un error de compilación AOT que causa excepciones NoSuchMethod en transformaciones globales.

SDKPreparación de seguridad de nulidad
Cambiado

Released: 2020-05-06

Prepara para tipos no nulos con varios cambios rompimiento a APIs de bibliotecas principales.

LenguajeInferencia de tipos
Corregido

Released: 2020-05-06

Se corrigió un error de implementación donde la inferencia de variable local usaría incorrectamente el tipo promovido de una variable de tipo.

LenguajeParche
Corregido

Released: 2020-05-06

Se corrigió un error de implementación alrededor de las cláusulas implements Function, extends Function o with Function que ya no tienen efecto desde Dart 2.0.0.

Bibliotecasdart:async
Cambiado

Released: 2020-05-06

Se cambió el tipo de retorno de StreamSubscription.cancel() a Future<void>.

Bibliotecasdart:async
Obsoleto

Released: 2020-05-06

Se dividió la función runZoned() en dos funciones: runZoned() y runZonedGuarded(), donde la última tiene un parámetro onError requerido y la primera no tiene ninguno.

Bibliotecasdart:async
Cambiado Rompimiento

Released: 2020-05-06

Los errores pasados a Completer.completeError(), Stream.addError(), Future.error(), etc. ya no pueden ser null.

Bibliotecasdart:async
Cambiado Rompimiento

Released: 2020-05-06

Se hicieron los stack traces no nulos.

Bibliotecasdart:core
Cambiado Rompimiento

Released: 2020-05-06

Tres miembros en RuneIterator ya no devuelven null cuando se accede antes de la primera llamada a moveNext().

Bibliotecasdart:core
Cambiado Rompimiento

Released: 2020-05-06

El valor predeterminado de String.fromEnvironment() para defaultValue ahora es una cadena vacía en lugar de null.

Bibliotecasdart:core
Cambiado Rompimiento

Released: 2020-05-06

El valor predeterminado para el parámetro defaultValue de int.fromEnvironment() ahora es cero.

Bibliotecasdart:ffi
Cambiado

Released: 2020-05-06

Se cambiaron Pointer.asFunction() y DynamicLibrary.lookupFunction() a métodos de extensión.

Bibliotecasdart:io
Cambiado Rompimiento

Released: 2020-05-06

Se cambió la firma de los métodos add() y set de HttpHeaders.

Bibliotecasdart:io
Cambiado Rompimiento

Released: 2020-05-06

La clase Socket ahora lanza una SocketException si el socket ha sido destruido explícitamente o actualizado a un socket seguro al establecer u obtener opciones de socket.

Bibliotecasdart:io
Cambiado Rompimiento

Released: 2020-05-06

La clase Process ahora lanza un StateError si el proceso está separado (ProcessStartMode.detached y ProcessStartMode.detachedWithStdio) al acceder al getter exitCode.

Bibliotecasdart:io
Cambiado Rompimiento

Released: 2020-05-06

La clase Process ahora también lanza cuando no está conectada al stdio del proceso hijo (ProcessStartMode.detached y ProcessStartMode.inheritStdio) al acceder a los getters stdin, stdout y stderr.

Bibliotecasdart:io
Cambiado Rompimiento

Released: 2020-05-06

El objeto dummy devuelto si FileStat.stat() o FileStat.statSync() fallan ahora contiene marcas de tiempo de la época Unix en lugar de null para los getters accessed, changed y modified.

Bibliotecasdart:io
Cambiado

Released: 2020-05-06

La clase HeaderValue ahora analiza más estrictamente en dos casos de borde inválidos.

HerramientasCompilador de desarrollo de Dart
Corregido

Released: 2020-05-06

Corregimos varias inconsistencias entre DDC y Dart2JS para que los usuarios encuentren menos frecuentemente código que es aceptado por un compilador pero luego falla en el otro.

HerramientasCompilador de desarrollo de Dart
Eliminado Rompimiento

Released: 2020-05-06

Se eliminó la versión heredada (basada en analizador) de DDC.

HerramientasCompilador de desarrollo de Dart
Cambiado Rompimiento

Released: 2020-05-06

Las funciones pasadas a JavaScript usando la especificación de interoperabilidad package:js recomendada ahora deben estar envueltas con una llamada a allowInterop.

HerramientasCompilador de desarrollo de Dart
Cambiado Rompimiento

Released: 2020-05-06

Los constructores en clases @JS() deben estar marcados con external.

Herramientasdart2js
Cambiado

Released: 2020-05-06

Los límites de parámetros de tipo correspondientes ahora solo necesitan ser subtipos mutuos en lugar de estructuralmente iguales hasta el renombramiento de variables de tipo límite y equiparando todos los tipos superiores.

Herramientasdart2js
Cambiado Rompimiento

Released: 2020-05-06

Los tipos ahora están normalizados.

Herramientasdart2js
Cambiado Rompimiento

Released: 2020-05-06

Los constructores en clases @JS() deben estar marcados con external.

Herramientasdart2js
Eliminado Rompimiento

Released: 2020-05-06

Se eliminó completamente la bandera --package-root, que estaba oculta y deshabilitada en Dart 2.0.0.

2.7

SDKSeguridad
Cambiado

Released: 2020-03-23

Corrige una vulnerabilidad de seguridad en dart:html (CVE-2020-8923) y mejora la compatibilidad ARMv8.

SDKdart2js
Cambiado

Released: 2020-01-23

Mejora el tiempo de compilación de dart2js y cambia la disponibilidad del SDK de macOS a solo x64.

SDKMétodos de extensión
Cambiado

Released: 2019-12-11

Introduce soporte oficial para métodos de extensión. Agrega nuevos constructores a TypedData en dart:typed_data. Mejora la inicialización de campos de Dart VM al recargar.

LenguajeMétodos de extensión
Nuevo

Released: 2019-12-11

Se agregó soporte para métodos de extensión. Te permite agregar funcionalidad a cualquier tipo, incluso tipos que no controlas con la brevedad y experiencia de autocompletado de llamadas a métodos regulares.

El siguiente ejemplo extiende la clase String de dart:core con un nuevo método parseInt():

dart
extension ParseNumbers on String {
  int parseInt() {
    return int.parse(this);
  }
}

void main() {
  int i = '42'.parseInt();
  print(i);
}
LenguajeSoporte de macOS
Cambiado

Released: 2019-12-11

El Dart SDK para macOS ahora solo está disponible para x64.

LenguajeMétodos de extensión
Cambiado

Released: 2019-12-11

Los miembros de extensión estáticos son accesibles cuando se importan con un prefijo.

Bibliotecasdart:io
Nuevo

Released: 2019-12-11

Se agregó IOOverrides.serverSocketBind para ayudar a escribir pruebas que deseen simular ServerSocket.bind.

2.6

SDKParche
Cambiado

Released: 2019-11-11

Reduce el uso de memoria de dart2js, mejora la estabilidad ARM64 y actualiza la documentación de FFI.

SDKVista previa de extensiones estáticas
Cambiado

Released: 2019-11-05

Introduce una vista previa de miembros de extensión estáticos. Cambia la inferencia para valores Null en contextos FutureOr. Actualiza dart:ffi con miembros de extensión estáticos y elimina la gestión de memoria.

LenguajeInferencia de tipos
Cambiado

Released: 2019-11-05

Se cambió la inferencia al usar valores Null en un contexto FutureOr. Es decir, las restricciones de las formas similares a Null <: FutureOr<T> ahora producen Null como la solución para T.

Por ejemplo, el siguiente código ahora imprime Null. Antes de Dart 2.6, imprimía dynamic. El closure anónimo () {} devuelve el tipo Null.

dart
import 'dart:async';

void foo<T>(FutureOr<T> Function() f) { print(T); }

main() { foo(() {}); }
Bibliotecasdart:ffi
Cambiado

Released: 2019-11-05

La API ahora hace uso de miembros de extensión estáticos.

Bibliotecasdart:ffi
Eliminado Rompimiento

Released: 2019-11-05

Se eliminó la gestión de memoria Pointer.allocate y Pointer.free.

Bibliotecasdart:ffi
Eliminado Rompimiento

Released: 2019-11-05

Pointer.offsetBy fue eliminado, usa cast y elementAt en su lugar.

2.5

SDKParche
Cambiado

Released: 2019-10-08

Corrige problemas de firma binaria en macOS Catalina.

SDKParche
Cambiado

Released: 2019-09-27

Corrige fallos de inferencia de tipos en el analizador.

SDKExpresiones constantes
Cambiado

Released: 2019-09-10

Expande el conjunto de operaciones permitidas en expresiones constantes, incluyendo conversiones, pruebas de tipo y características de colección.

Bibliotecasdart:ffi
Nuevo

Released: 2019-09-10

Se agregó una vista previa de Dart FFI para llamar código C.

BibliotecasSistema de tipos
Cambiado

Released: 2019-09-10

Varios métodos y propiedades en varias bibliotecas principales, que solían declarar un tipo de retorno de List<int>, fueron actualizados para declarar un tipo de retorno de Uint8List.

Bibliotecasdart:io
Cambiado

Released: 2019-09-10

Los parámetros posicionales opcionales name y value del constructor de la clase Cookie ahora son obligatorios.

Bibliotecasdart:io
Cambiado

Released: 2019-09-10

Los setters name y value de la clase Cookie ahora validan que las cadenas estén hechas del conjunto de caracteres permitido y no sean null.

HerramientasPub
Obsoleto

Released: 2019-09-10

Los paquetes publicados en pub.dev ya no pueden contener dependencias git.

2.4

SDKParche
Cambiado

Released: 2019-08-07

Corrige una regresión de rendimiento en modo JIT y un fallo potencial del compilador AOT.

SDKTransferableTypedData
Cambiado

Released: 2019-06-27

Agrega TransferableTypedData para comunicación más rápida entre isolates. Aplica covarianza de variables de tipo usadas en superinterfaces. Permite async como identificador en funciones asíncronas y generadoras.

LenguajeSistema de tipos
Cambiado

Released: 2019-06-27

La covarianza de variables de tipo usadas en superinterfaces ahora se aplica.

Por ejemplo: Antes de esta versión Dart aceptaba, pero ahora rechaza, el siguiente código:

dart
class A<X> {};
class B<X> extends A<void Function(X)> {};
LenguajeSoporte asíncrono
Nuevo

Released: 2019-06-27

Ahora puedes usar async como identificador en funciones asíncronas y generadoras.

Bibliotecasdart:isolate
Cambiado

Released: 2019-06-27

Isolate.resolvePackageUri siempre lanzará un UnsupportedError cuando se compile con dart2js o DDC.

Bibliotecasdart:async
Corregido

Released: 2019-06-27

Se corrigió un error en la clase StreamIterator donde await for permitía null como un stream.

2.3

SDKParche
Cambiado

Released: 2019-06-11

Corrige una vulnerabilidad de seguridad en Process.run en Linux y Android al no buscar el directorio actual.

SDKParche
Cambiado

Released: 2019-05-21

Corrige un fallo del compilador dart2js al compilar características de UI-como-código dentro de campos.

SDKUI como código
Cambiado

Released: 2019-05-08

Introduce características de UI-como-código: operador spread (...), colección if y colección for.

LenguajeOperador spread
Nuevo

Released: 2019-05-08

Se agregó soporte para el operador spread (... y ...?) en literales de colección. El operador spread permite desempaquetar los elementos de una lista en otra. En el siguiente ejemplo, la lista devuelta por buildMainElements() se desempaqueta en la lista que se pasa al argumento children:

dart
Widget build(BuildContext context) {
  return Column(children: [
    Header(),
    ...buildMainElements(),
    Footer(),
  ]);
}
LenguajeCollection if
Nuevo

Released: 2019-05-08

Se agregó soporte para colección if en literales de colección. El operador colección if permite agregar elementos condicionalmente. El siguiente ejemplo agrega un elemento FlatButton a menos que la aplicación muestre la última página:

dart
Widget build(BuildContext context) {
  return Column(children: [
    Text(mainText),
    if (page != pages.last)
      FlatButton(child: Text('Next')),
  ]);
}
LenguajeCollection for
Nuevo

Released: 2019-05-08

Se agregó soporte para colección for en literales de colección. El operador colección for permite construir elementos repetidos. El siguiente ejemplo agrega un elemento HeadingAction para cada sección en sections:

dart
Widget build(BuildContext context) {
  return Column(children: [
    Text(mainText),
    for (var section in sections)
      HeadingAction(section.heading),
  ]);
}

2.2

SDKLiterales de conjunto
Cambiado

Released: 2019-02-26

Introduce literales de conjunto usando {}. Renombra el getter klass a classNode en la API de AST de Kernel. Actualiza la implementación de Link en Windows para usar enlaces simbólicos verdaderos.

LenguajeLiterales de conjunto
Nuevo

Released: 2019-02-26

Se agregó soporte para literales de conjunto usando {}.

El siguiente ejemplo crea un conjunto de monedas:

dart
const Set<String> currencies = {'EUR', 'USD', 'JPY'};
Bibliotecas package:kernel
Cambiado

Released: 2019-02-26

El getter klass en la clase InstanceConstant en la API de AST de Kernel ha sido renombrado a classNode para consistencia.

Bibliotecas package:kernel
Cambiado

Released: 2019-02-26

Se actualizó la implementación de Link para utilizar enlaces simbólicos verdaderos en lugar de uniones en Windows.

2.1

SDKParche
Cambiado

Released: 2018-11-15

Corrige un agujero de solidez en dart:mirrors y agrega un StateError al agregar a un IOSink cerrado.

Bibliotecasdart:io
Nuevo Cambiado

Released: 2018-11-15

Agregar a un IOSink cerrado ahora lanza un StateError.

HerramientasDart VM
Corregido

Released: 2018-11-15

Se corrigió un agujero de solidez al usar dart:mirrors para invocar reflexivamente un método de manera incorrecta que viola sus tipos estáticos.

SDKConversión de int a double
Cambiado

Released: 2018-11-15

Introduce conversión de int a double, nueva sintaxis de mixin y varias verificaciones de errores estáticos.

LenguajeTipos de número
Nuevo

Released: 2018-11-15

Se agregó soporte para conversión de int a double, permitiendo a los desarrolladores establecer valores double usando literales enteros. Esta característica eliminó la molestia de verse obligado a usar un literal double (por ejemplo, 4.0) cuando el valor era un entero en concepto.

En el siguiente código Flutter, horizontal y vertical tienen tipo double:

dart
padding: const EdgeInsets.symmetric(
  horizontal: 4,
  vertical: 8,
)
Herramientasdart2js
Cambiado

Released: 2018-11-15

Las claves duplicadas en un mapa const no están permitidas y producen un error de tiempo de compilación.

2.0

SDKSistema de tipos sólido
Con versión de lenguaje

Released: 2018-08-07

Introduce un sistema de tipo estático sólido (anteriormente modo fuerte). Hace que la palabra clave new sea opcional y const opcional en contextos const. Cambia las funciones async para que se ejecuten sincrónicamente hasta el primer await. Renombra constantes de bibliotecas principales a lowerCamelCase.

LenguajeSistema de tipos
Cambiado

Released: 2018-02-22

Se reemplazó el sistema de tipo estático opcional no sólido con un sistema de tipo estático sólido usando inferencia de tipo y verificaciones en tiempo de ejecución, anteriormente llamado modo fuerte.

LenguajeFunciones asíncronas
Cambiado

Released: 2018-02-22

Las funciones marcadas async ahora se ejecutan sincrónicamente hasta la primera declaración await.

BibliotecasConstantes
Cambiado

Released: 2018-02-22

Se renombraron constantes en las bibliotecas principales de SCREAMING_CAPS a lowerCamelCase.

BibliotecasSistema de tipos
Nuevo

Released: 2018-02-22

Se implementó un nuevo sistema de tipo sólido. Antes de Dart 2.0, los tipos no eran completamente sólidos, y Dart dependía mucho de la verificación de tipo en tiempo de ejecución. El código Dart 1.x tenía que ser migrado a Dart 2.

Se agregaron muchos métodos nuevos a clases de bibliotecas principales que necesitarán ser implementados si implementas las interfaces de estas clases.

BibliotecasWeb
Eliminado Rompimiento

Released: 2018-02-22

dart:isolate y dart:mirrors ya no son admitidos cuando se usa Dart para la web.

HerramientasPub
Nuevo

Released: 2018-02-22

Se reemplazó el sistema de compilación basado en transformadores de pub con un nuevo sistema de compilación.

Filtrar por

Tipo

Área

Versión

3.x
2.x

Tipos de cambios

Nuevo New
Introduce una nueva característica o API.
Corregido Fixed
Corrige un error o defecto.
Cambiado Changed
Modifica el comportamiento o APIs existentes.
Rompimiento Breaking
Cambio incompatible que puede requerir migración de código.
Sin versión
El Dart SDK no mantiene compatibilidad con versiones anteriores, y el código podría romperse tan pronto como actualices tu versión del SDK si depende del comportamiento anterior. Estos son la mayoría de los cambios y no están marcados especialmente.
Versión de lenguaje Language versioned
El Dart SDK mantiene compatibilidad con versiones anteriores para el código existente, y el cambio de comportamiento solo entra en vigor cuando actualizas la versión del lenguaje de tu código.
Obsolencias Deprecated / Removed
El Dart SDK mantiene compatibilidad para el código obsoleto, con una advertencia. Las obsolescencias luego se eliminan completamente en una versión posterior, rompiendo cualquier código que dependa del comportamiento anterior.
Experimental Experimental
Parte de la versión pero aún no tratado como estable en el SDK y puede romper de una versión a otra.