Loading...
Loading...
Expert guide and lookup reference for the Dart SDK CHANGELOG, version history, experimental features, macros, and augmentations from Dart 1.x to modern Dart 3.x. Use this skill whenever the user asks "what's new in Dart X", "what's new in 3.13", "what's new in 3.12", asks how to find the minimum SDK version (minSdk) for any language feature or core API, needs guidance on experimental feature flags (--enable-experiment), macros, and augmentations (augment, augmented(), import augment), or requires assistance rescuing and modernizing legacy Dart 1.x / pre-2.12 codebases to modern Dart 3.x.
npx skill4agent add randalschwartz/dart-sdk-skills dart-sdk-changelog--enable-experimentminSdkminSdkpubspec.yamlmajor.minorpubspec.yamlenvironment.sdk^3.13.0>=3.12.0 <4.0.0.1.2sdk: '^3.13.0'Future.pauseList.unmodifiableOf// @dart = 3.12minSdk| Feature / Syntax | Minimum SDK | Example Syntax | Reference |
|---|---|---|---|
| Primary Constructors | | | 3.13 Guide |
| Constructor Keyword Shorthands | | | 3.13 Guide |
| Private Named Parameters | | | 3.12 Guide |
Wildcard Variables ( | | | 3.7 Guide |
| Type Inference Using Bounds | | Inferred types respect type parameter bounds | 3.7 Guide |
| Digit Separators | | | 3.6 Guide |
| Extension Types | | | 3.0-3.5 Guide |
| Private Field Promotion | | | 3.0-3.5 Guide |
| Records (Tuples) | | | 3.0-3.5 Guide |
| Pattern Matching & Destructuring | | | 3.0-3.5 Guide |
| Switch Expressions | | | 3.0-3.5 Guide |
| If-Case Statements & Elements | | | 3.0-3.5 Guide |
| Sealed Classes & Exhaustiveness | | | 3.0-3.5 Guide |
Class Modifiers ( | | | 3.0-3.5 Guide |
| 100% Sound Null Safety Enforced | | Non-null-safe mode disallowed | 3.0-3.5 Guide |
| Super-Initializer Parameters | | | Dart 2 Milestones |
| Enhanced Enums | | | Dart 2 Milestones |
| Named Arguments Anywhere | | | Dart 2 Milestones |
| Constructor Tear-Offs | | | Dart 2 Milestones |
Triple-Shift Operator ( | | | Dart 2 Milestones |
Generic Type Aliases ( | | | Dart 2 Milestones |
Sound Null Safety ( | | Sound static non-nullable types | Dart 2 Milestones |
| Extension Methods | | | Dart 2 Milestones |
Spread Operators ( | | | Dart 2 Milestones |
Collection | | | Dart 2 Milestones |
Sound Type System & Optional | | Static sound types replace dynamic checks | Dart 2 Milestones |
augment classimport augmentaugmented()build_runner.g.dart--enable-experimentanalysis_options.yamlanalyzer.enable-experimentdart --enable-experiment=...@requiredpubspec.yamlpedantictuple| Release / Guide | Focus Area | Key Additions | Reference Document |
|---|---|---|---|
| Macros & Augmentations | Metaprogramming | | Macros & Augmentations Guide |
| Experimental Features | Compiler Flags | | Experiments Guide |
| Legacy Rescue | Migration Runbook | Dart 1.x/2.x to Modern 3.x modernization pipeline, null-safety bridge, package replacements | Rescue Guide |
| Dart 3.14 | FFI & JS Interop | | 3.14 Reference |
| Dart 3.13 | Language & Runtime | Primary constructors, | 3.13 Reference |
| Dart 3.12 | Language & Tooling | Private named parameters ( | 3.12 Reference |
| Dart 3.11 | Platform & Pub | Windows Unix domain sockets, Workspace globs ( | 3.11 Reference |
| Dart 3.10 | Extensibility & CLI | Analyzer plugins stable, Hooks (native assets) stable, | 3.10 Reference |
| Dart 3.9 | Analysis & Pub | AOT analysis server, git tag version solving, null-safety assumptions in flow analysis | 3.9 Reference |
| Dart 3.8 | Formatter & Docs | Doc imports ( | 3.8 Reference |
| Dart 3.7 | Language & Formatter | Wildcard variables ( | 3.7 Reference |
| Dart 3.6 | Language & Pub | Digit separators ( | 3.6 Reference |
| Dart 3.0 – 3.5 | Foundation & Major Features | Records, Patterns, Switch Expressions, Sealed Classes, Class Modifiers, Extension Types, Field Promotion, Wasm | 3.0–3.5 Reference |
| Dart 2.0 – 2.19 | Historical Milestones | Sound Null Safety (2.12), Enhanced Enums & Super-Params (2.17), Extension Methods (2.7), Spreads (2.3), Sound Type System (2.0) | Dart 2 Milestones |
import augment 'foo.g.dart';augment library 'foo.dart';augment classaugment void method()augmented()analysis_options.yamlanalyzer.enable-experiment: [name]--enable-experiment=namedart rundart testflutter runflutter testpubspec.yamlsdk: ^3.5.0^3.13.0references/dart:coredart:asyncdart:iodart:js_interopdart:isolatedart:ffidart analyzedart formatdart pubdart buildpubspec.yamlsdk: '^3.13.0'dart analyze