analyzer
This package provides a library that performs static analysis of Dart code.
14.1.0
dart-lang/sdk
What this package is like to depend on
Last release 1 months ago
13 Jul 2026
Release timing varies
gaps range from 9 days to 2 months
Most releases are documented
notes for 199 of 290 stable releases
2 versions withdrawn
withdrawn after publishing
13 years old
386 releases · first in 2013
19 releases in the last 12 months
see the full history below
Release timeline
386 releases · Oct 2013 to Jul 2026
2014
2016
2018
2020
2022
2024
2026
Releases
latest 60 of 386-
14.1.013 Jul 2026 -
14.0.018 Jun 2026Release notes
Open source →- Breaking Change: Removed
FormalParameterElement.isInitializingFormal. Use type checks (element is FieldFormalParameterElement) instead. - Breaking Change: Removed
FormalParameterElement.isSuperFormal. Use type checks (element is SuperFormalParameterElement) instead. - Breaking Change: Removed
PackageConfigFileBuilderfrompackage:analyzer/utilities/package_config_file_builder.dart. Usepackage:analyzer_testing/package_config_file_builder.dartinstead. - Breaking Change: Removed
FormalParameterElement.formalParameters. UseFormalParameterElement.typeinstead. - Breaking Change: Removed
FormalParameterElement.typeParameters. UseFormalParameterElement.typeinstead.
- Breaking Change: Removed
-
13.3.011 Jun 2026Release notes
Open source →- Add
Folder.getFile, deprecateFolder.getChildAssumingFile. - Add
Folder.getFolder, deprecateFolder.getChildAssumingFolder.
- Add
-
13.2.010 Jun 2026Release notes
Open source →- Allow package_config
3.x.x. - Deprecate
FormalParameterElement.formalParametersandtypeParameters. UseFormalParameterElement.typeinstead. - Added
isCompletetoConstructorDeclaration,FunctionDeclaration, andMethodDeclaration. - Deprecated
MethodDeclaration.isAbstract. Use!isCompleteinstead. - Deprecate the
excludedPathsparameter inAnalysisContextCollection. Useanalysis_options.yamlto configure excluded paths instead.
- Allow package_config
-
13.1.004 Jun 2026Release notes
Open source →- Deprecate
PackageConfigFileBuilderinpackage:analyzer/utilities/package_config_file_builder.dart. Usepackage:analyzer_testing/package_config_file_builder.dartinstead. - Deprecate
isInitializingFormalinFormalParameterElement. Use type checks (element is FieldFormalParameterElement) instead. - Deprecate
isSuperFormalinFormalParameterElement. Use type checks (element is SuperFormalParameterElement) instead. - Deprecate
ExtensionTypeDeclaration.primaryConstructor. UseExtensionTypeDeclaration.namePartinstead.
- Deprecate
-
13.0.022 Apr 2026Release notes
Open source →- Breaking Change:
MixinFragment.superclassConstraintshas been removed. Usefragment.element.superclassConstraintsinstead. - Breaking Change:
DefaultFormalParameterhas been removed. Default values for parameters are now represented compositionally via adefaultClauseproperty on allFormalParameternodes. - Breaking Change:
SimpleFormalParameterandFunctionTypedFormalParameterhave been removed and replaced byRegularFormalParameter. - Breaking Change: Function-typed parameters are now represented compositionally via a
functionTypedSuffixproperty onFormalParameter. - Breaking Change:
NormalFormalParameterhas been removed from the AST hierarchy. - Breaking Change:
AstVisitormethodsvisitDefaultFormalParameter,visitSimpleFormalParameter, andvisitFunctionTypedFormalParameterhave been removed. UsevisitRegularFormalParameterinstead for standard parameters. - Added
FormalParameterDefaultClauseandFunctionTypedFormalParameterSuffixAST nodes to represent parameter defaults and function-typed parameter structures. - Breaking Change:
NamedExpressionhas been removed and replaced withNamedArgumentinArgumentListandRecordLiteralNamedFieldinRecordLiteral. - Breaking Change: Added
ArgumentandRecordLiteralFieldAST node interfaces, whichExpressionnow implements. - Breaking Change:
ArgumentList.argumentsnow returnsNodeList<Argument>instead ofNodeList<Expression>. - Breaking Change:
RecordLiteral.fieldsnow returnsNodeList<RecordLiteralField>instead ofNodeList<Expression>. - Breaking Change:
AstVisitor.visitNamedExpressionhas been removed. UsevisitNamedArgumentandvisitRecordLiteralNamedFieldinstead. - Breaking Change:
FormalParameterElement.firstFragmentand.fragmentsnow returnFormalParameterFragment(instead of specific parameter fragment subtypes likeFieldFormalParameterFragment), making formal parameter fragments heterogeneous to support augmentations. - Added
LabelReferenceAST node to represent references to labels without them being in the expression hierarchy. - Breaking Change:
Labelnow uses aToken nameinstead ofSimpleIdentifier label. - Breaking Change:
BreakStatement.labelandContinueStatement.labelnow returnLabelReference?instead ofSimpleIdentifier?.
- Breaking Change:
-
12.1.008 Apr 2026Release notes
Open source →- Support type aliases for
dynamic,Never, andvoid. As a result, it is no longer safe to assume that there is a single instance ofDynamicType,NeverType, orVoidType. Use type checks (is DynamicType) instead ofidentical().
- Support type aliases for
-
12.0.017 Mar 2026Release notes
Open source →- Added
InstantiatedTypeAliasElement.nullabilitySuffix. - Support empty bodies (
;) in enums, extensions, and mixins, representing them in the AST withEmptyEnumBodyandEmptyClassBody. - Breaking Change:
ClassBodyis now asealed classwith subclassesBlockClassBodyandEmptyClassBody. Getters like.members,.leftBracket, and.rightBracketare available onBlockClassBody. This affectsClassDeclaration,ExtensionDeclaration, andMixinDeclarationbodies. - Breaking Change:
EnumBodyis now asealed classwith subclassesBlockEnumBodyandEmptyEnumBody. Getters like.members,.leftBracket, and.rightBracketare available onBlockEnumBody. - Breaking Change: Remove
LibraryIdentifier.LibraryDirective.nameandPartOfDirective.libraryNamenow returnDottedName?. - Breaking Change:
DottedName.components(NodeList<SimpleIdentifier>) is replaced withDottedName.tokens(List<Token>).
- Added
-
11.0.027 Feb 2026Release notes
Open source →- Remove deprecated
ClassDeclaration.leftBracket. - Remove deprecated
ClassDeclaration.members. - Remove deprecated
ClassDeclaration.name. - Remove deprecated
ClassDeclaration.rightBracket. - Remove deprecated
ClassDeclaration.typeParameters. - Remove deprecated
EnumDeclaration.constants. - Remove deprecated
EnumDeclaration.leftBracket. - Remove deprecated
EnumDeclaration.members. - Remove deprecated
EnumDeclaration.name. - Remove deprecated
EnumDeclaration.rightBracket. - Remove deprecated
EnumDeclaration.semicolon. - Remove deprecated
EnumDeclaration.typeParameters. - Remove deprecated
ExtensionDeclaration.leftBracket. - Remove deprecated
ExtensionDeclaration.members. - Remove deprecated
ExtensionDeclaration.rightBracket. - Remove deprecated
ExtensionTypeDeclaration.constKeyword. - Remove deprecated
ExtensionTypeDeclaration.leftBracket. - Remove deprecated
ExtensionTypeDeclaration.members. - Remove deprecated
ExtensionTypeDeclaration.name. - Remove deprecated
ExtensionTypeDeclaration.representation. - Remove deprecated
ExtensionTypeDeclaration.rightBracket. - Remove deprecated
ExtensionTypeDeclaration.typeParameters. - Remove deprecated
ConstructorDeclaration.returnType. - Remove deprecated
MixinDeclaration.leftBracket. - Remove deprecated
MixinDeclaration.members. - Remove deprecated
MixinDeclaration.rightBracket. - Remove deprecated
NamedCompilationUnitMember. - Remove deprecated
RepresentationConstructorName. - Remove deprecated
RepresentationDeclaration. - Remove deprecated
ConstructorElement.isSynthetic. - Remove deprecated
ConstructorFragment.isSynthetic. - Remove deprecated
Element.isSynthetic. - Remove deprecated
ExecutableFragment.isSynthetic. - Remove deprecated
PropertyAccessorElement.isSynthetic. - Remove deprecated
PropertyInducingElement.isSynthetic. - Remove deprecated
PropertyInducingFragment.isSynthetic. - Remove deprecated
visitNamedCompilationUnitMember. - Remove deprecated
visitRepresentationConstructorName. - Remove deprecated
visitRepresentationDeclaration. - Remove deprecated
RuleVisitorRegistry.addRepresentationConstructorName. - Remove deprecated
RuleVisitorRegistry.addRepresentationDeclaration. ClassDeclaration,EnumDeclaration,FunctionDeclaration,MixinDeclaration, andTypeAliasnow implementCompilationUnitMemberdirectly (instead ofNamedCompilationUnitMember).
- Remove deprecated
-
10.2.021 Feb 2026Release notes
Open source →- Deprecate
RuleVisitorRegistry.addRepresentationConstructorName. - Deprecate
RuleVisitorRegistry.addRepresentationDeclaration.
- Deprecate
-
10.1.017 Feb 2026Release notes
Open source →- Add
TypeSystem.futureValueType. - Remove experimental
ConstructorElement.isDeclaring. - Stabilize
ConstructorElement.isPrimary. - Stabilize
FieldElement.declaringFormalParameter. - Stabilize
FieldFormalParameterElement.isDeclaringandprivateName. - Stabilize
FieldFormalParameterFragment.privateName. - Deprecate
LibraryFragment.isSynthetic, useisOriginNotExistingFileinstead. - Breaking Change: Identifiers and prefixed identifiers that resolve to a type (such as a class, type
alias,
dynamic, orNever) in a value expression slot are now represented asTypeLiteralnodes instead ofSimpleIdentifierorPrefixedIdentifiernodes (Issues 62763, 63113).
- Add
-
10.0.230 Jan 2026 -
10.0.116 Jan 2026 -
10.0.007 Jan 2026Release notes
Open source →- Deprecations in
ClassDeclaration:- Properties
leftBracket,members,rightBracketare deprecated; usebodyinstead. - Properties
name,typeParametersare deprecated; usenamePartinstead.
- Properties
- Deprecations in
EnumDeclaration:- Properties
leftBracket,constants,members,rightBracketare deprecated; usebodyinstead. - Properties
name,typeParametersare deprecated; usenamePartinstead.
- Properties
- Deprecations in
ExtensionDeclaration:- Properties
leftBracket,members,rightBracketare deprecated; usebodyinstead.
- Properties
- Deprecations in
ExtensionTypeDeclaration:- Properties
leftBracket,constants,members,rightBracketare deprecated; usebodyinstead. - Properties
constKeyword,name,representation,typeParametersare deprecated; useprimaryConstructorinstead.
- Properties
- Breaking Change: While the deprecated members mentioned above still exist in the AST, their parent nodes have changed. This means that code relying on specific parent-child relationships for these nodes might break.
- Breaking Change: Remove deprecated
DiagnosticOrErrorListenerand theDiagnosticOrErrorListenerExtensionextension. - Breaking Change: Remove deprecated
RecordingDiagnosticListener.onErrorandBooleanDiagnosticListener.onErrormethods. - Deprecate
LintCode.new'shasPublishedDocsparameter. - Add
RemovedAnalysisRuleas the preferred way to represent removed lint rules. DeprecatedRuleState.removed(which was the previous way to do so). - Deprecate
ConstructorElement.isSynthetic. UseisOriginDeclaration,isOriginImplicitDefault,isOriginMixinApplicationinstead. - Deprecate
TopLevelVariableElement.isSynthetic. UseisOriginDeclaration,isOriginGetterSetter. - Deprecate
FieldElement.isSynthetic. UseisOriginDeclaration,isOriginGetterSetter,isOriginDeclaringFormalParameter,isOriginEnumValuesinstead. - Deprecate
PropertyAccessorElement.isSynthetic. UseisOriginDeclaration,isOriginInterface,isOriginVariableinstead. - Deprecate
Element.isSynthetic; useisOriginXyzproperties instead. - Deprecate
LibraryElement.isSynthetic; useisOriginNotExistingFileinstead. - Document that the class
SyntacticEntityis not intended to be subclassed by clients. - Deprecate
DiagnosticCode.nameandDiagnosticCode.uniqueName. UseDiagnosticCode.lowerCaseNameandDiagnosticCode.lowerCaseUniqueNameinstead. - Breaking Change: Remove
GitPluginSource,PathPluginSource,PluginConfiguration,PluginSource,VersionedPluginSourcefrom the public API. - Breaking Change: Remove deprecated
AnalysisOptions.pluginConfigurations.
- Deprecations in
-
9.0.023 Oct 2025Release notes
Open source →- Remove deprecated field
Diagnostic.data. - In the method
DiagnosticReporter.atOffsetand the constructorsDiagnostic.tmpandDiagnostic.forValues, remove the deprecated named parametererrorCode, and make the named parameterdiagnosticCodenon-nullable and required. - Remove deprecated
DiagnosticReporter.atOffsetnamed parameter,errorCode. - Remove deprecated
BooleanErrorListener. - Remove deprecated
RecordingErrorListener. - Remove deprecated
AnalysisErrorListener.NULL_LISTENER. - Remove deprecated
AstNodeExtension. - Remove deprecated
NullShortableExpression. - Remove deprecated getters and methods from AST and element model.
- Remove deprecated
PartDirective.configurations. - Remove deprecated
TypeDefiningElement. - Remove deprecated
TypeAliasElement.aliasedElement. - Remove deprecated
resolveFile2. - Remove deprecated
ErrorCode. - Remove deprecated
ErrorSeverity. - Remove deprecated
ErrorType. - Remove deprecated
AnalysisErrorListener. - Remove deprecated
RecordingDiagnosticListener.errors. - Remove deprecated
RecordingDiagnosticListener.getErrorForSource. - Deprecate
BooleanDiagnosticListener.onErrorin favor of.onDiagnostic. - Deprecate
RecordingDiagnosticListener.onErrorin favor of.onDiagnostic. - Deprecate
DiagnosticOrErrorListenerin favor ofDiagnosticListener.
- Remove deprecated field
-
8.4.128 Oct 2025Nothing published for this version
-
8.4.015 Oct 2025Release notes
Open source →- Add the
experimental_member_usewarning, which warns about any reference to a declaration annotated with@experimental. - Deprecate
TypeAliasElement.aliasedElement, usealiasedTypeinstead.
- Add the
-
8.3.010 Oct 2025Release notes
Open source →- Deprecate
TypeDefiningElement, check for specific elements. - Deprecate
TypeDefiningFragment, check for specific fragments. - Deprecate
PartDirective.configurations, removed from the specification.
- Deprecate
-
8.2.019 Sep 2025Release notes
Open source →- Updated SDK constraint to
^3.9.0. - Deprecate
Diagnostic.data. Instead, please use an expando to attach data to theDiagnosticobject. - Deprecate
CatchClauseParameter.declaredElementandCatchClauseParameter.declaredElement2. UseCatchClauseParameter.declaredFragmentinstead. - Deprecate
DeclaredIdentifier.declaredElementandDeclaredIdentifier.declaredElement2. UseDeclaredIdentifier.declaredFragmentinstead. - Deprecate
DeclaredVariablePattern.declaredElementandDeclaredVariablePattern.declaredElement2. UseDeclaredVariablePattern.declaredFragmentinstead. - Deprecate
VariableDeclaration.declaredElementandVariableDeclaration.declaredElement2. UseVariableDeclaration.declaredFragmentinstead. - Deprecate
InterfaceFragment.interfaces, useInterfaceElement.interfacesinstead. - Deprecate
InterfaceFragment.mixins, useInterfaceElement.mixinsinstead. - Deprecate
InterfaceFragment.supertype, useInterfaceElement.supertypeinstead. - Deprecate
ExtensionTypeFragment.primaryConstructor, useExtensionTypeElement.primaryConstructor. - Deprecate
ExtensionTypeFragment.representation, useExtensionTypeElement.representation. - Deprecate
NullShortableExpression. This interface should not be needed by analyzer clients, and is no longer supported.
- Updated SDK constraint to
-
8.1.111 Aug 2025 -
8.1.007 Aug 2025Release notes
Open source →- Add
DartObject.constructorInvocationwith the constructor and arguments. - Make
PropertyAccessorElement.variablenon-nullable. - Add
documentationCommenttoElementandFragment. - Add
metadatatoElementandFragment. - Add
metadatatoElementDirective. - Add
partKeywordOffsettoPartInclude. - Fix draining analysis events when used by
package:build. - Deprecate
LibraryElementResult.element2, useelementinstead. - Deprecate
ResolvedLibraryResult.element2, useelementinstead. - Deprecate
ResolvedUnitResult.libraryElement2, uselibraryElementinstead. - Deprecate
AnalysisSession.getParsedLibraryByElement2, usegetParsedLibraryByElementinstead. - Deprecate
AnalysisSession.getResolvedLibraryByElement2, usegetResolvedLibraryByElementinstead. - Deprecate
resolveFile2, useresolveFileinstead. - Deprecate
DartObject.variable2, usevariableinstead. - Deprecate
DartObject.toFunctionValue2, usetoFunctionValueinstead. - Deprecate
Annotatable, usedocumentationCommentandmetadataofElementorFragmentdirectly. - Deprecate
ClassElement.isExtendableIn; useisExtendableOutsideinstead. - Deprecate
ClassElement.isImplementableIn; useisImplementableOutsideinstead. - Deprecate
ClassElement.isMixableIn; useisMixableOutsideinstead. - Deprecate
MixinElement.isImplementableIn; useisImplementableOutsideinstead.
- Add
-
8.0.017 Jul 2025Release notes
Open source →- Remove deprecated element model V1.
- Remove deprecated
DartType.isStructurallyEqualTo. - Remove deprecated
RecordType.positionalTypes. - Remove deprecated
RecordType.sortedNamedTypes. - Remove
ElementLocationclass; its values are not returned anymore. - Remove deprecated
AnalysisContext.analysisOptions. - Remove deprecated
PromotableElementandPromotableFragment. - Remove deprecated
LocalVariableElement.hasInitializer. - Remove deprecated
LocalVariableFragment.hasInitializer. - Remove deprecated
LocalVariableFragment.nameOffset. - Remove deprecated
JoinPatternVariableFragment.isConsistent. - Remove deprecated
JoinPatternVariableFragment.variables2. - Remove deprecated
VariableElement.constantInitializer2. - Remove deprecated
VariableFragment.initializer. - Remove deprecated
ConstantInitializer. - Remove deprecated
HasSinceSdkVersion. LibraryFragmentis notAnnotatableanymore.- Stop implementing
ConstantEvaluationTargetbyElementAnnotation. This is an internal interface that should not have been exposed. - Deprecate
element2.dartlibrary; importelement.dart. - Deprecate
XyzElement2classes; useXyzElementinstead. - Deprecate
AnalysisError.correctionfield; useAnalysisError.correctionMessageinstead. - Deprecate
AnalysisError; useDiagnosticinstead. - Deprecate
ErrorCode; useDiagnosticCodeinstead. - Deprecate
ErrorReporter.atOffset'serrorCodeparameter; usediagnosticCodeinstead. - Deprecate
ErrorSeverity; useDiagnosticSeverityinstead. - Deprecate
DiagnosticCode.errorSeverity; useDiagnosticCode.diagnosticSeverityinstead. - Deprecate
AnalysisErrorListener,BooleanErrorListener, andRecordingErrorListener; useDiagnosticListener,BooleanDiagnosticListener, andRecordingDiagnosticListenerrespectively, instead. Instead of calling or overridingAnalysisErrorListener.onError, call or overrideDiagnosticListener.onDiagnostic. Instead of usingAnalysisErrorListener.NULL_LISTENER, useDiagnosticListener.nullListener. - Deprecate
RecordingErrorListener.errors; useRecordingDiagnosticListener.diagnosticsinstead. - Deprecate
RecordingErrorListener.getErrorsForSource; no longer supported. - Deprecate
AnalysisResultWithErrors; useAnalysisResultWithDiagnosticsinstead. - Deprecate
AnalysisResultWithErrors.errors; useAnalysisResultWithErrors.diagnosticsinstead. - Deprecate
ErrorType; useDiagnosticTypeinstead. - Change
ElementDirectivefromsealedtoabstract. This allows the analyzer to have an internal implementation class corresponding toElementDirective. - Deprecate
NamedType.name2, usenameinstead. - Deprecate
ClassElement.isXyzIn2, useisXyzIninstead. - Deprecate
Element.enclosingElement2, useenclosingElementinstead. - Deprecate
InstanceElement.fields2, usefieldsinstead. - Deprecate
InstanceElement.getters2, usegettersinstead. - Deprecate
InstanceElement.setters2, usesettersinstead. - Deprecate
InstanceElement.methods2, usemethodsinstead. - Deprecate
InstanceElement.getField2, usegetFieldinstead. - Deprecate
InstanceElement.getGetter2, usegetGetterinstead. - Deprecate
InstanceElement.getSetter2, usegetSetterinstead. - Deprecate
InstanceElement.getMethod2, usegetMethodinstead. - Deprecate
InstanceFragment.fields2, usefieldsinstead. - Deprecate
InstanceFragment.methods2, usemethodsinstead. - Deprecate
InterfaceElement.constructors2, useconstructorsinstead. - Deprecate
InterfaceFragment.constructors2, useconstructorsinstead. - Deprecate
JoinPatternVariableElement.variables2, usevariablesinstead. - Deprecate
Annotatable.metadata2, usemetadatainstead. - Deprecate
Element.nonSynthetic2, usenonSyntheticinstead. - Deprecate
Element.library2, uselibraryinstead. - Deprecate
ExtensionTypeElement.primaryConstructor2, useprimaryConstructorinstead. - Deprecate
ExtensionTypeElement.representation2, userepresentationinstead. - Deprecate
ExtensionTypeFragment.primaryConstructor2, useprimaryConstructorinstead. - Deprecate
ExtensionTypeFragment.representation2, userepresentationinstead. - Deprecate
InterfaceType.getGetter2, usegetGetterinstead. - Deprecate
InterfaceType.getMethod2, usegetMethodinstead. - Deprecate
InterfaceType.getSetter2, usegetSetterinstead. - Deprecate
InterfaceType.lookUpConstructor2, uselookUpConstructorinstead. - Deprecate
InterfaceType.lookUpGetter3, uselookUpGetterinstead. - Deprecate
InterfaceType.lookUpMethod3, uselookUpMethodinstead. - Deprecate
InterfaceType.lookUpSetter3, uselookUpSetterinstead. - Remove
PropertyAccessorFragmentImplImplicitGetter,PropertyAccessorFragmentImplImplicitSetter, andFormalParameterFragmentImplOfImplicitSetter, replace withGetterFragmentImpl, andSetterFragmentImpl. - Deprecate
ExtensionTypeFragment.representation2, userepresentationinstead. - Deprecate
DartType.element3, useelementinstead. - Deprecate
LibraryElement.loadLibraryFunction2, useloadLibraryFunctioninstead. - Deprecate
InterfaceType.constructors2, useconstructorsinstead. - Deprecate
Element.accept2, useacceptinstead. - Deprecate
InstantiatedTypeAliasElement.element2, useelementinstead. - Deprecate
TypeProvider.boolElement2, useboolElementinstead. - Deprecate
TypeProvider.doubleElement2, usedoubleElementinstead. - Deprecate
TypeProvider.enumElement2, useenumElementinstead. - Deprecate
TypeProvider.futureElement2, usefutureElementinstead. - Deprecate
TypeProvider.futureOrElement2, usefutureOrElementinstead. - Deprecate
TypeProvider.intElement2, useintElementinstead. - Deprecate
TypeProvider.iterableElement2, useiterableElementinstead. - Deprecate
TypeProvider.listElement2, uselistElementinstead. - Deprecate
TypeProvider.mapElement2, usemapElementinstead. - Deprecate
TypeProvider.nullElement2, usenullElementinstead. - Deprecate
TypeProvider.numElement2, usenumElementinstead. - Deprecate
TypeProvider.objectElement2, useobjectElementinstead. - Deprecate
TypeProvider.recordElement2, userecordElementinstead. - Deprecate
TypeProvider.setElement2, usesetElementinstead. - Deprecate
TypeProvider.streamElement2, usestreamElementinstead. - Deprecate
TypeProvider.stringElement2, usestringElementinstead. - Deprecate
TypeProvider.symbolElement2, usesymbolElementinstead. - Deprecate
Annotation.element2, useelementinstead. - Deprecate
LibraryDirective.name2, usenameinstead. - Deprecate
CatchClauseParameter.declaredElement2, usedeclaredElementinstead. - Deprecate
CompoundAssignmentExpression.readElement2, usereadElementinstead. - Deprecate
CompoundAssignmentExpression.writeElement2, usewriteElementinstead. - Deprecate
DeclaredIdentifier.declaredElement2, usedeclaredElementinstead. - Deprecate
DeclaredVariablePattern.declaredElement2, usedeclaredElementinstead. - Deprecate
EnumConstantDeclaration.constructorElement2, useconstructorElementinstead. - Deprecate
ExtensionOverride.element2, useelementinstead. - Deprecate
FunctionBody.isPotentiallyMutatedInScope2, useisPotentiallyMutatedInScopeinstead. - Deprecate
ImportPrefixReference.element2, useelementinstead. - Deprecate
LibraryDirective.element2, useelementinstead. - Deprecate
LibraryDirective.name2, usenameinstead. - Deprecate
NamedExpression.element2, useelementinstead. - Deprecate
NamedType.element2, useelementinstead. - Deprecate
PatternField.element2, useelementinstead. - Deprecate
RelationalPattern.element2, useelementinstead. - Deprecate
VariableDeclaration.declaredElement2, usedeclaredElementinstead. - Deprecate
InterfaceType.methods2, usemethodsinstead. - Deprecate
Fragment.name2, usenameinstead. - Deprecate
Element.name3, usenameinstead. - Deprecate
ConstructorElement.redirectedConstructor2, useredirectedConstructorinstead. - Deprecate
ConstructorElement.superConstructor2, usesuperConstructor˙instead. - Deprecate
Element.children2, usechildreninstead. - Deprecate
Element.displayString2, usedisplayStringinstead. - Deprecate
Element.getExtendedDisplayName2, usegetExtendedDisplayNameinstead. - Deprecate
Element.isAccessibleIn2, useisAccessibleIninstead. - Deprecate
Element.thisOrAncestorMatching2, usethisOrAncestorMatchinginstead. - Deprecate
Element.thisOrAncestorOfType2, usethisOrAncestorOfTypeinstead. - Deprecate
EnumElement.constants2, useconstantsinstead. - Deprecate
FieldFormalParameterElement.field2, usefieldinstead. - Deprecate
FormalParameterElement.typeParameters2, usetypeParametersinstead. - Deprecate
Fragment.children3, usechildreninstead. - Deprecate
DartType.asInstanceOf2, useasInstanceOfinstead. - Deprecate
TypeSystem.instantiateInterfaceToBounds2, useinstantiateInterfaceToBoundsinstead. - Deprecate
TypeSystem.instantiateTypeAliasToBounds2, useinstantiateTypeAliasToBoundsinstead. - Deprecate
FormalParameterElement.appendToWithoutDelimiters, useappendToWithoutDelimitersinstead. - Deprecate
GetterElement.correspondingSetter2, usecorrespondingSetterinstead. - Deprecate
InterfaceElement.unnamedConstructor2, useunnamedConstructorinstead. - Deprecate
InterfaceElement.getNamedConstructor2, usegetNamedConstructorinstead. - Deprecate
TypeParameterizedElement.typeParameters2, usetypeParametersinstead. - Deprecate
FormalParameterElement.appendToWithoutDelimiters2, useappendToWithoutDelimitersinstead. - Deprecate
GetterElement.correspondingSetter2, usecorrespondingSetterinstead. - Deprecate
InterfaceElement.unnamedConstructor2, useunnamedConstructorinstead. - Deprecate
InterfaceElement.getNamedConstructor2, usegetNamedConstructorinstead. - Deprecate
LibraryElement.entryPoint2, useentryPointinstead. - Deprecate
LibraryElement.exportedLibraries2, useexportedLibrariesinstead. - Deprecate
LibraryElement.getClass2, usegetClassinstead. - Deprecate
LibraryElement.getEnum2, usegetEnuminstead. - Deprecate
LibraryElement.getMixin2, usegetMixininstead. - Deprecate
LibraryExport.exportedLibrary2, useexportedLibraryinstead. - Deprecate
LibraryFragment.accessibleExtensions2, useaccessibleExtensionsinstead. - Deprecate
LibraryFragment.importedLibraries2, useimportedLibrariesinstead. - Deprecate
LibraryImport.importedLibrary2, useimportedLibraryinstead. - Deprecate
MixinElement.isImplementableIn2, useisImplementableIninstead. - Deprecate
PatternVariableElement.join2, usejoininstead. - Deprecate
PropertyAccessorElement.variable3, usevariableinstead. - Deprecate
PropertyInducingElement.getter2, usegetterinstead. - Deprecate
PropertyInducingElement.setter2, usesetterinstead. - Deprecate
SetterElement.correspondingGetter2, usecorrespondingGetterinstead. - Deprecate
SuperFormalParameterElement.superConstructorParameter2, usesuperConstructorParameterinstead. - Deprecate
TypeAliasElement.aliasedElement2, usealiasedElementinstead. - Deprecate
TypeParameterizedElement.typeParameters2, usetypeParametersinstead. - Deprecate
VariableElement.constantInitializer2, useconstantInitializerinstead. - Deprecate
TypeProvider.isNonSubtypableClass2, useisNonSubtypableClassinstead. - Deprecate
EnumFragment.constants2, useconstantsinstead. - Deprecate
InterfaceElement.lookUpInheritedMethod2, uselookUpInheritedMethodinstead. - Deprecate
LibraryFragment.classes2, useclassesinstead. - Deprecate
LibraryFragment.enums2, useenumsinstead. - Deprecate
LibraryFragment.extensionTypes2, useextensionTypesinstead. - Deprecate
LibraryFragment.extensions2, useextensionsinstead. - Deprecate
LibraryFragment.functions2, usefunctionsinstead. - Deprecate
LibraryFragment.libraryExports2, uselibraryExportsinstead. - Deprecate
LibraryFragment.libraryImports2, uselibraryImportsinstead. - Deprecate
LibraryFragment.mixins2, usemixinsinstead. - Deprecate
LibraryFragment.topLevelVariables2, usetopLevelVariablesinstead. - Deprecate
LibraryFragment.typeAliases2, usetypeAliasesinstead. - Deprecate
PatternVariableFragment.join2, usejoininstead. - Deprecate
LibraryFragment.isNonSubtypableClass2, useisNonSubtypableClassinstead. - Deprecate
TypeParameterizedFragment.typeParameters2, usetypeParametersinstead. - Deprecate
Fragment.nameOffset2, usenameOffsetinstead. - Deprecate
DirectiveUriWithLibrary.library2, uselibraryinstead. - Deprecate
ElementAnnotation.element2, useelementinstead. - Deprecate
LibraryImport.prefix2, useprefixinstead. - Deprecate
MultiplyDefinedElement.conflictingElements2, useconflictingElementsinstead. - Deprecate
ScopeLookupResult.getter2, usegetterinstead. - Deprecate
ScopeLookupResult.setter2, usesetterinstead.
-
7.7.122 Jul 2025Nothing published for this version
-
7.7.016 Jul 2025 -
7.6.016 Jul 2025Release notes
Open source →- Deprecated
VariableElement.constantInitializer2, useconstantInitializerinstead. - Deprecated
VariableFragment.initializer, useVariableElement.constantInitializerinstead. - Deprecated
ConstantInitializer.
- Deprecated
-
7.5.914 Jul 2025Release notes
Open source →- Deprecated
JoinPatternVariableFragment.isConsistentandvariables2. Use corresponding properties ofJoinPatternVariableElement2instead.
- Deprecated
-
7.5.814 Jul 2025Release notes
Open source →- Add a special case for bool.fromEnvironment('dart.library.js_interop') Cherry-pick https://dart-review.googlesource.com/c/sdk/+/439820
-
7.5.712 Jul 2025 -
7.5.609 Jul 2025 -
7.5.507 Jul 2025Release notes
Open source →- Deprecate
LocalVariableElement.hasInitializerandLocalVariableFragment.hasInitializer. This property is not useful and was not de-facto used.
- Deprecate
-
7.5.402 Jul 2025Release notes
Open source →- Deprecate
PromotableFragmentandPromotableElement. These interfaces are implementation details.
- Deprecate
-
7.5.302 Jul 2025Release notes
Open source →- Deprecate
AugmentedExpressionandAugmentedInvocation. This feature was removed from the specification.
- Deprecate
-
7.5.226 Jun 2025Release notes
Open source →- Deprecate
LibraryElement.identifier, useuriinstead. - Deprecate
LibraryElement2.identifier, useuriinstead.
- Deprecate
-
7.5.125 Jun 2025Release notes
Open source →- Deprecate
ConstantEvaluationTargetitself, and its methods. - Deprecate methods of already deprecated
AnalysisTarget. - Generate
api.txtmanifest.
- Deprecate
-
7.5.025 Jun 2025Release notes
Open source →- Deprecate methods inherited by
ElementAnnotationfromConstantEvaluationTarget. - In the next major version
ElementAnnotationwill stop implementingConstantEvaluationTarget. - Add
ElementAnnotation.libraryFragment, as the replacement for the deprecations above. It provides enough information about the location.
- Deprecate methods inherited by
-
7.4.623 Jun 2025Release notes
Open source →- Deprecate
PropertyAccessorFragment.variable3. UsePropertyAccessorElement2.variable3instead. - Deprecate
PropertyInducingFragment.getter2. UsePropertyInducingElement2.getter2instead. - Deprecate
PropertyInducingFragment.setter2. UsePropertyInducingElement2.setter2instead.
- Deprecate
-
7.4.507 May 2025 -
7.4.422 Apr 2025 -
7.4.322 Apr 2025 -
7.4.221 Apr 2025 -
7.4.117 Apr 2025Release notes
Open source →- Restore
InstanceElement.augmentedgetter. This API was removed in 7.4.0 under the assumption that its removal would not be a breaking change, because it was marked as@experimental. But it turns out that some clients had been published to pub that relied on it. So, these APIs were restored, and implemented on top ofElement2.
- Restore
-
7.4.015 Apr 2025Release notes
Open source →- Updated SDK constraint to
^3.5.0. - Deprecated element model V1. See migration guide.
- Updated SDK constraint to
-
7.3.007 Feb 2025Release notes
Open source →- Add
flagsoptional named parameter toFeatureSet.latestLanguageVersion().
- Add
-
7.2.017 Jan 2025Release notes
Open source →- Add
ElementDirectiveas superinterface forLibraryExport,LibraryImport, andPartInclude. It implementsAnnotatable.
- Add
-
7.1.016 Dec 2024 -
7.0.020 Nov 2024Release notes
Open source →- Remove deprecated
DartType.element2. - Remove deprecated
DartType.isDynamic. - Remove deprecated
DartType.isVoid. - Remove deprecated
DartType.resolveToBound. - Remove deprecated
IfElement.condition. - Remove deprecated
IfStatement.condition. - Remove deprecated
AstNode.getPropertyandAstNode.setProperty. - Remove
File.createSource(), it violates levels of abstraction. You can getSourceinstances fromAnalysisResults. - Remove deprecated
LibraryElement.toLegacyTypeIfOptOut. - Remove deprecated
LibraryElement.toLegacyElementIfOptOut. - Remove deprecated
LibraryElement.isNonNullableByDefault. - Remove deprecated
File.changesandFolder.changes. - Remove deprecated
Resource.parent2. - Remove deprecated
OnClause. - Remove deprecated
ContextBuilder, useAnalysisContextCollection. - Remove deprecated
ContextLocator, useAnalysisContextCollection. - Remove deprecated
ClassOrAugmentationDeclaration.. - Remove deprecated
MixinOrAugmentationDeclaration.. - Remove deprecated members of
AnalysisError. - Remove deprecated
TypeSystem.instantiateToBounds2. - Remove deprecated
buildSdkSummary2(). - Remove deprecated
FileSource.fileReadMode. - Remove deprecated members of
ErrorReporter. - Remove deprecated
Comment.isBlock,isDocumentation,isEndOfLine. - Remove deprecated
Element.enclosingElement. - Remove deprecated
PropertyAccessor.variable. - Remove experimental
LibraryOrAugmentationElement. - Remove deprecated
LibraryElementproperties. - Remove deprecated
enabledPluginNamesandhintfromAnalysisOptions. - Remove deprecated
source_io.dart. - Remove deprecated
lint/Spelunker. - Remove deprecated
source_resource.dart. - Remove
MultiplyInheritedExecutableElement. - Remove
AnalyzeFunctionBodiesPredicate. - Remove
normalParameterNamesandoptionalParameterNamesfromFunctionType.
- Remove deprecated
-
6.11.010 Oct 2024Release notes
Open source →- Un-deprecated
LibraryElement.exportedLibraries. - Un-deprecated
LibraryElement.importedLibraries.
- Un-deprecated
-
6.10.008 Oct 2024Release notes
Open source →- Deprecated
LibraryElement.accessibleExtensions, useCompilationUnitElement.accessibleExtensionsinstead. - Deprecated
LibraryElement.exportedLibraries. - Deprecated
LibraryElement.importedLibraries. - Deprecated
LibraryElement.isBrowserApplication. - Deprecated
LibraryElement.libraryExports, useCompilationUnitElement.libraryExportsinstead. - Deprecated
LibraryElement.libraryImports, useCompilationUnitElement.libraryImportsinstead. - Deprecated
LibraryElement.prefixes, useCompilationUnitElement.libraryImportPrefixesinstead. - Deprecated
LibraryElement.parts, useCompilationUnitElement.partsinstead. - Deprecated
LibraryElement.scope, useCompilationUnitElement.scopeinstead.
- Deprecated
-
6.9.005 Sep 2024Release notes
Open source →NormalFormalParameternow implementsAnnotatedNode.- Deprecated
Element.enclosingElement, useenclosingElement3.
-
6.8.015 Jul 2024Release notes
Open source →- Add
AnalysisContextCollection.dispose(). It must be invoked at the end. - Deprecated
ContextLocatorandContextBuilder. UseAnalysisContextCollectioninstead.
- Add
-
6.7.016 Jun 2024Release notes
Open source →- Deprecated
File.createSource(), it violates levels of abstraction. You can getSourceinstances fromAnalysisResults. - Deprecated unused static members of
AnalysisError.
- Deprecated
-
6.6.013 Jun 2024Release notes
Open source →- Stop exporting
src/file_system/file_system.dartfromfile_system/file_system.dart. - Deprecated
package:analyzer/src/source/source_resource.dart, importpackage:analyzer/source/file_source.dartinstead. - Deprecated exports from
package:analyzer/src/source/source.dart, importpackage:analyzer/source/source.dartinstead.
- Stop exporting
-
6.5.230 May 2024 -
6.5.128 May 2024 -
6.5.030 Apr 2024Release notes
Open source →- Deprecated
LibraryElement.toLegacyTypeIfOptOut. - Deprecated
LibraryElement.toLegacyElementIfOptOut. - Deprecated
LibraryElement.isNonNullableByDefault. - Deprecated
InterfaceElement.lookUpGetter,InterfaceElement.lookUpMethod, andInterfaceElement.lookUpSetter. - Fixed
GeneralizingAstVisitor.visitNamedTypeto invokevisitTypeAnnotation. - Deprecated
PropertyInducingElement get variableinPropertyAccessorElement, usePropertyInducingElement? get variable2instead. The reason for this is that when the property accessor is an augmentation without the corresponding declaration, there is no corresponding variable. - Deprecated
ExtensionDeclaration.onKeywordandextendedType. UseExtensionOnClause? get onClauseinstead. Extension augmentations are not allowed to haveonClause. - Deprecated
OnClause, useMixinOnClauseinstead. - Support new meta annotation:
@doNotSubmit. - Support new meta annotation:
@mustBeConst. - Support new meta TargetKinds:
constructor,directive,enumValue, andtypeParameter. - Fix for accessing constants from extension type, when import prefixed.
- Deprecated
AstNode.getPropertyandAstNode.setProperty. Clients who need the ability to add arbitrary decorations to AST nodes can achieve the same effect using Dart's built-in Expando class.
- Deprecated
-
6.4.130 Jan 2024 -
6.4.022 Jan 2024Nothing published for this version
-
6.3.011 Oct 2023Release notes
Open source →- Updated the current language version to
3.3. - Removed generated
ConstantEvaluator.
- Updated the current language version to
-
6.2.014 Aug 2023 -
6.1.004 Aug 2023Release notes
Open source →- Added
InstanceElement, a super-interface forInterfaceElementandExtensionElement. - Added
TypeSystem.greatestLowerBound.
- Added