PackageTrack
Sign in Get early access

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
Release Pre-release Withdrawn

Releases

latest 60 of 386
  1. 14.1.0 13 Jul 2026
    Release notes
    • Internal changes only
    Open source →
  2. 14.0.0 18 Jun 2026
    Release notes
    • 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 PackageConfigFileBuilder from package:analyzer/utilities/package_config_file_builder.dart. Use package:analyzer_testing/package_config_file_builder.dart instead.
    • Breaking Change: Removed FormalParameterElement.formalParameters. Use FormalParameterElement.type instead.
    • Breaking Change: Removed FormalParameterElement.typeParameters. Use FormalParameterElement.type instead.
    Open source →
  3. 13.3.0 11 Jun 2026
    Release notes
    • Add Folder.getFile, deprecate Folder.getChildAssumingFile.
    • Add Folder.getFolder, deprecate Folder.getChildAssumingFolder.
    Open source →
  4. 13.2.0 10 Jun 2026
    Release notes
    • Allow package_config 3.x.x.
    • Deprecate FormalParameterElement.formalParameters and typeParameters. Use FormalParameterElement.type instead.
    • Added isComplete to ConstructorDeclaration, FunctionDeclaration, and MethodDeclaration.
    • Deprecated MethodDeclaration.isAbstract. Use !isComplete instead.
    • Deprecate the excludedPaths parameter in AnalysisContextCollection. Use analysis_options.yaml to configure excluded paths instead.
    Open source →
  5. 13.1.0 04 Jun 2026
    Release notes
    • Deprecate PackageConfigFileBuilder in package:analyzer/utilities/package_config_file_builder.dart. Use package:analyzer_testing/package_config_file_builder.dart instead.
    • Deprecate isInitializingFormal in FormalParameterElement. Use type checks (element is FieldFormalParameterElement) instead.
    • Deprecate isSuperFormal in FormalParameterElement. Use type checks (element is SuperFormalParameterElement) instead.
    • Deprecate ExtensionTypeDeclaration.primaryConstructor. Use ExtensionTypeDeclaration.namePart instead.
    Open source →
  6. 13.0.0 22 Apr 2026
    Release notes
    • Breaking Change: MixinFragment.superclassConstraints has been removed. Use fragment.element.superclassConstraints instead.
    • Breaking Change: DefaultFormalParameter has been removed. Default values for parameters are now represented compositionally via a defaultClause property on all FormalParameter nodes.
    • Breaking Change: SimpleFormalParameter and FunctionTypedFormalParameter have been removed and replaced by RegularFormalParameter.
    • Breaking Change: Function-typed parameters are now represented compositionally via a functionTypedSuffix property on FormalParameter.
    • Breaking Change: NormalFormalParameter has been removed from the AST hierarchy.
    • Breaking Change: AstVisitor methods visitDefaultFormalParameter, visitSimpleFormalParameter, and visitFunctionTypedFormalParameter have been removed. Use visitRegularFormalParameter instead for standard parameters.
    • Added FormalParameterDefaultClause and FunctionTypedFormalParameterSuffix AST nodes to represent parameter defaults and function-typed parameter structures.
    • Breaking Change: NamedExpression has been removed and replaced with NamedArgument in ArgumentList and RecordLiteralNamedField in RecordLiteral.
    • Breaking Change: Added Argument and RecordLiteralField AST node interfaces, which Expression now implements.
    • Breaking Change: ArgumentList.arguments now returns NodeList<Argument> instead of NodeList<Expression>.
    • Breaking Change: RecordLiteral.fields now returns NodeList<RecordLiteralField> instead of NodeList<Expression>.
    • Breaking Change: AstVisitor.visitNamedExpression has been removed. Use visitNamedArgument and visitRecordLiteralNamedField instead.
    • Breaking Change: FormalParameterElement.firstFragment and .fragments now return FormalParameterFragment (instead of specific parameter fragment subtypes like FieldFormalParameterFragment), making formal parameter fragments heterogeneous to support augmentations.
    • Added LabelReference AST node to represent references to labels without them being in the expression hierarchy.
    • Breaking Change: Label now uses a Token name instead of SimpleIdentifier label.
    • Breaking Change: BreakStatement.label and ContinueStatement.label now return LabelReference? instead of SimpleIdentifier?.
    Open source →
  7. 12.1.0 08 Apr 2026
    Release notes
    • Support type aliases for dynamic, Never, and void. As a result, it is no longer safe to assume that there is a single instance of DynamicType, NeverType, or VoidType. Use type checks (is DynamicType) instead of identical().
    Open source →
  8. 12.0.0 17 Mar 2026
    Release notes
    • Added InstantiatedTypeAliasElement.nullabilitySuffix.
    • Support empty bodies (;) in enums, extensions, and mixins, representing them in the AST with EmptyEnumBody and EmptyClassBody.
    • Breaking Change: ClassBody is now a sealed class with subclasses BlockClassBody and EmptyClassBody. Getters like .members, .leftBracket, and .rightBracket are available on BlockClassBody. This affects ClassDeclaration, ExtensionDeclaration, and MixinDeclaration bodies.
    • Breaking Change: EnumBody is now a sealed class with subclasses BlockEnumBody and EmptyEnumBody. Getters like .members, .leftBracket, and .rightBracket are available on BlockEnumBody.
    • Breaking Change: Remove LibraryIdentifier. LibraryDirective.name and PartOfDirective.libraryName now return DottedName?.
    • Breaking Change: DottedName.components (NodeList<SimpleIdentifier>) is replaced with DottedName.tokens (List<Token>).
    Open source →
  9. 11.0.0 27 Feb 2026
    Release notes
    • 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, and TypeAlias now implement CompilationUnitMember directly (instead of NamedCompilationUnitMember).
    Open source →
  10. 10.2.0 21 Feb 2026
    Release notes
    • Deprecate RuleVisitorRegistry.addRepresentationConstructorName.
    • Deprecate RuleVisitorRegistry.addRepresentationDeclaration.
    Open source →
  11. 10.1.0 17 Feb 2026
    Release notes
    • Add TypeSystem.futureValueType.
    • Remove experimental ConstructorElement.isDeclaring.
    • Stabilize ConstructorElement.isPrimary.
    • Stabilize FieldElement.declaringFormalParameter.
    • Stabilize FieldFormalParameterElement.isDeclaring and privateName.
    • Stabilize FieldFormalParameterFragment.privateName.
    • Deprecate LibraryFragment.isSynthetic, use isOriginNotExistingFile instead.
    • Breaking Change: Identifiers and prefixed identifiers that resolve to a type (such as a class, type alias, dynamic, or Never) in a value expression slot are now represented as TypeLiteral nodes instead of SimpleIdentifier or PrefixedIdentifier nodes (Issues 62763, 63113).
    Open source →
  12. 10.0.2 30 Jan 2026
    Release notes
    • Internal changes only
    Open source →
  13. 10.0.1 16 Jan 2026
    Release notes
    • Require version ^1.18.0 of the meta package.
    Open source →
  14. 10.0.0 07 Jan 2026
    Release notes
    • Deprecations in ClassDeclaration:
      • Properties leftBracket, members, rightBracket are deprecated; use body instead.
      • Properties name, typeParameters are deprecated; use namePart instead.
    • Deprecations in EnumDeclaration:
      • Properties leftBracket, constants, members, rightBracket are deprecated; use body instead.
      • Properties name, typeParameters are deprecated; use namePart instead.
    • Deprecations in ExtensionDeclaration:
      • Properties leftBracket, members, rightBracket are deprecated; use body instead.
    • Deprecations in ExtensionTypeDeclaration:
      • Properties leftBracket, constants, members, rightBracket are deprecated; use body instead.
      • Properties constKeyword, name, representation, typeParameters are deprecated; use primaryConstructor instead.
    • 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 DiagnosticOrErrorListener and the DiagnosticOrErrorListenerExtension extension.
    • Breaking Change: Remove deprecated RecordingDiagnosticListener.onError and BooleanDiagnosticListener.onError methods.
    • Deprecate LintCode.new's hasPublishedDocs parameter.
    • Add RemovedAnalysisRule as the preferred way to represent removed lint rules. Deprecated RuleState.removed (which was the previous way to do so).
    • Deprecate ConstructorElement.isSynthetic. Use isOriginDeclaration, isOriginImplicitDefault, isOriginMixinApplication instead.
    • Deprecate TopLevelVariableElement.isSynthetic. Use isOriginDeclaration, isOriginGetterSetter.
    • Deprecate FieldElement.isSynthetic. Use isOriginDeclaration, isOriginGetterSetter, isOriginDeclaringFormalParameter, isOriginEnumValues instead.
    • Deprecate PropertyAccessorElement.isSynthetic. Use isOriginDeclaration, isOriginInterface, isOriginVariable instead.
    • Deprecate Element.isSynthetic; use isOriginXyz properties instead.
    • Deprecate LibraryElement.isSynthetic; use isOriginNotExistingFile instead.
    • Document that the class SyntacticEntity is not intended to be subclassed by clients.
    • Deprecate DiagnosticCode.name and DiagnosticCode.uniqueName. Use DiagnosticCode.lowerCaseName and DiagnosticCode.lowerCaseUniqueName instead.
    • Breaking Change: Remove GitPluginSource, PathPluginSource, PluginConfiguration, PluginSource, VersionedPluginSource from the public API.
    • Breaking Change: Remove deprecated AnalysisOptions.pluginConfigurations.
    Open source →
  15. 9.0.0 23 Oct 2025
    Release notes
    • Remove deprecated field Diagnostic.data.
    • In the method DiagnosticReporter.atOffset and the constructors Diagnostic.tmp and Diagnostic.forValues, remove the deprecated named parameter errorCode, and make the named parameter diagnosticCode non-nullable and required.
    • Remove deprecated DiagnosticReporter.atOffset named 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.onError in favor of .onDiagnostic.
    • Deprecate RecordingDiagnosticListener.onError in favor of .onDiagnostic.
    • Deprecate DiagnosticOrErrorListener in favor of DiagnosticListener.
    Open source →
  16. 8.4.1 28 Oct 2025

    Nothing published for this version

  17. 8.4.0 15 Oct 2025
    Release notes
    • Add the experimental_member_use warning, which warns about any reference to a declaration annotated with @experimental.
    • Deprecate TypeAliasElement.aliasedElement, use aliasedType instead.
    Open source →
  18. 8.3.0 10 Oct 2025
    Release notes
    • Deprecate TypeDefiningElement, check for specific elements.
    • Deprecate TypeDefiningFragment, check for specific fragments.
    • Deprecate PartDirective.configurations, removed from the specification.
    Open source →
  19. 8.2.0 19 Sep 2025
    Release notes
    • Updated SDK constraint to ^3.9.0.
    • Deprecate Diagnostic.data. Instead, please use an expando to attach data to the Diagnostic object.
    • Deprecate CatchClauseParameter.declaredElement and CatchClauseParameter.declaredElement2. Use CatchClauseParameter.declaredFragment instead.
    • Deprecate DeclaredIdentifier.declaredElement and DeclaredIdentifier.declaredElement2. Use DeclaredIdentifier.declaredFragment instead.
    • Deprecate DeclaredVariablePattern.declaredElement and DeclaredVariablePattern.declaredElement2. Use DeclaredVariablePattern.declaredFragment instead.
    • Deprecate VariableDeclaration.declaredElement and VariableDeclaration.declaredElement2. Use VariableDeclaration.declaredFragment instead.
    • Deprecate InterfaceFragment.interfaces, use InterfaceElement.interfaces instead.
    • Deprecate InterfaceFragment.mixins, use InterfaceElement.mixins instead.
    • Deprecate InterfaceFragment.supertype, use InterfaceElement.supertype instead.
    • Deprecate ExtensionTypeFragment.primaryConstructor, use ExtensionTypeElement.primaryConstructor.
    • Deprecate ExtensionTypeFragment.representation, use ExtensionTypeElement.representation.
    • Deprecate NullShortableExpression. This interface should not be needed by analyzer clients, and is no longer supported.
    Open source →
  20. 8.1.1 11 Aug 2025
    Release notes
    • Fix for EnumSet usage when compiled to JavaScript.
    Open source →
  21. 8.1.0 07 Aug 2025
    Release notes
    • Add DartObject.constructorInvocation with the constructor and arguments.
    • Make PropertyAccessorElement.variable non-nullable.
    • Add documentationComment to Element and Fragment.
    • Add metadata to Element and Fragment.
    • Add metadata to ElementDirective.
    • Add partKeywordOffset to PartInclude.
    • Fix draining analysis events when used by package:build.
    • Deprecate LibraryElementResult.element2, use element instead.
    • Deprecate ResolvedLibraryResult.element2, use element instead.
    • Deprecate ResolvedUnitResult.libraryElement2, use libraryElement instead.
    • Deprecate AnalysisSession.getParsedLibraryByElement2, use getParsedLibraryByElement instead.
    • Deprecate AnalysisSession.getResolvedLibraryByElement2, use getResolvedLibraryByElement instead.
    • Deprecate resolveFile2, use resolveFile instead.
    • Deprecate DartObject.variable2, use variable instead.
    • Deprecate DartObject.toFunctionValue2, use toFunctionValue instead.
    • Deprecate Annotatable, use documentationComment and metadata of Element or Fragment directly.
    • Deprecate ClassElement.isExtendableIn; use isExtendableOutside instead.
    • Deprecate ClassElement.isImplementableIn; use isImplementableOutside instead.
    • Deprecate ClassElement.isMixableIn; use isMixableOutside instead.
    • Deprecate MixinElement.isImplementableIn; use isImplementableOutside instead.
    Open source →
  22. 8.0.0 17 Jul 2025
    Release notes
    • Remove deprecated element model V1.
    • Remove deprecated DartType.isStructurallyEqualTo.
    • Remove deprecated RecordType.positionalTypes.
    • Remove deprecated RecordType.sortedNamedTypes.
    • Remove ElementLocation class; its values are not returned anymore.
    • Remove deprecated AnalysisContext.analysisOptions.
    • Remove deprecated PromotableElement and PromotableFragment.
    • 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.
    • LibraryFragment is not Annotatable anymore.
    • Stop implementing ConstantEvaluationTarget by ElementAnnotation. This is an internal interface that should not have been exposed.
    • Deprecate element2.dart library; import element.dart.
    • Deprecate XyzElement2 classes; use XyzElement instead.
    • Deprecate AnalysisError.correction field; use AnalysisError.correctionMessage instead.
    • Deprecate AnalysisError; use Diagnostic instead.
    • Deprecate ErrorCode; use DiagnosticCode instead.
    • Deprecate ErrorReporter.atOffset's errorCode parameter; use diagnosticCode instead.
    • Deprecate ErrorSeverity; use DiagnosticSeverity instead.
    • Deprecate DiagnosticCode.errorSeverity; use DiagnosticCode.diagnosticSeverity instead.
    • Deprecate AnalysisErrorListener, BooleanErrorListener, and RecordingErrorListener; use DiagnosticListener, BooleanDiagnosticListener, and RecordingDiagnosticListener respectively, instead. Instead of calling or overriding AnalysisErrorListener.onError, call or override DiagnosticListener.onDiagnostic. Instead of using AnalysisErrorListener.NULL_LISTENER, use DiagnosticListener.nullListener.
    • Deprecate RecordingErrorListener.errors; use RecordingDiagnosticListener.diagnostics instead.
    • Deprecate RecordingErrorListener.getErrorsForSource; no longer supported.
    • Deprecate AnalysisResultWithErrors; use AnalysisResultWithDiagnostics instead.
    • Deprecate AnalysisResultWithErrors.errors; use AnalysisResultWithErrors.diagnostics instead.
    • Deprecate ErrorType; use DiagnosticType instead.
    • Change ElementDirective from sealed to abstract. This allows the analyzer to have an internal implementation class corresponding to ElementDirective.
    • Deprecate NamedType.name2, use name instead.
    • Deprecate ClassElement.isXyzIn2, use isXyzIn instead.
    • Deprecate Element.enclosingElement2, use enclosingElement instead.
    • Deprecate InstanceElement.fields2, use fields instead.
    • Deprecate InstanceElement.getters2, use getters instead.
    • Deprecate InstanceElement.setters2, use setters instead.
    • Deprecate InstanceElement.methods2, use methods instead.
    • Deprecate InstanceElement.getField2, use getField instead.
    • Deprecate InstanceElement.getGetter2, use getGetter instead.
    • Deprecate InstanceElement.getSetter2, use getSetter instead.
    • Deprecate InstanceElement.getMethod2, use getMethod instead.
    • Deprecate InstanceFragment.fields2, use fields instead.
    • Deprecate InstanceFragment.methods2, use methods instead.
    • Deprecate InterfaceElement.constructors2, use constructors instead.
    • Deprecate InterfaceFragment.constructors2, use constructors instead.
    • Deprecate JoinPatternVariableElement.variables2, use variables instead.
    • Deprecate Annotatable.metadata2, use metadata instead.
    • Deprecate Element.nonSynthetic2, use nonSynthetic instead.
    • Deprecate Element.library2, use library instead.
    • Deprecate ExtensionTypeElement.primaryConstructor2, use primaryConstructor instead.
    • Deprecate ExtensionTypeElement.representation2, use representation instead.
    • Deprecate ExtensionTypeFragment.primaryConstructor2, use primaryConstructor instead.
    • Deprecate ExtensionTypeFragment.representation2, use representation instead.
    • Deprecate InterfaceType.getGetter2, use getGetter instead.
    • Deprecate InterfaceType.getMethod2, use getMethod instead.
    • Deprecate InterfaceType.getSetter2, use getSetter instead.
    • Deprecate InterfaceType.lookUpConstructor2, use lookUpConstructor instead.
    • Deprecate InterfaceType.lookUpGetter3, use lookUpGetter instead.
    • Deprecate InterfaceType.lookUpMethod3, use lookUpMethod instead.
    • Deprecate InterfaceType.lookUpSetter3, use lookUpSetter instead.
    • Remove PropertyAccessorFragmentImplImplicitGetter, PropertyAccessorFragmentImplImplicitSetter, and FormalParameterFragmentImplOfImplicitSetter, replace with GetterFragmentImpl, and SetterFragmentImpl.
    • Deprecate ExtensionTypeFragment.representation2, use representation instead.
    • Deprecate DartType.element3, use element instead.
    • Deprecate LibraryElement.loadLibraryFunction2, use loadLibraryFunction instead.
    • Deprecate InterfaceType.constructors2, use constructors instead.
    • Deprecate Element.accept2, use accept instead.
    • Deprecate InstantiatedTypeAliasElement.element2, use element instead.
    • Deprecate TypeProvider.boolElement2, use boolElement instead.
    • Deprecate TypeProvider.doubleElement2, use doubleElement instead.
    • Deprecate TypeProvider.enumElement2, use enumElement instead.
    • Deprecate TypeProvider.futureElement2, use futureElement instead.
    • Deprecate TypeProvider.futureOrElement2, use futureOrElement instead.
    • Deprecate TypeProvider.intElement2, use intElement instead.
    • Deprecate TypeProvider.iterableElement2, use iterableElement instead.
    • Deprecate TypeProvider.listElement2, use listElement instead.
    • Deprecate TypeProvider.mapElement2, use mapElement instead.
    • Deprecate TypeProvider.nullElement2, use nullElement instead.
    • Deprecate TypeProvider.numElement2, use numElement instead.
    • Deprecate TypeProvider.objectElement2, use objectElement instead.
    • Deprecate TypeProvider.recordElement2, use recordElement instead.
    • Deprecate TypeProvider.setElement2, use setElement instead.
    • Deprecate TypeProvider.streamElement2, use streamElement instead.
    • Deprecate TypeProvider.stringElement2, use stringElement instead.
    • Deprecate TypeProvider.symbolElement2, use symbolElement instead.
    • Deprecate Annotation.element2, use element instead.
    • Deprecate LibraryDirective.name2, use name instead.
    • Deprecate CatchClauseParameter.declaredElement2, use declaredElement instead.
    • Deprecate CompoundAssignmentExpression.readElement2, use readElement instead.
    • Deprecate CompoundAssignmentExpression.writeElement2, use writeElement instead.
    • Deprecate DeclaredIdentifier.declaredElement2, use declaredElement instead.
    • Deprecate DeclaredVariablePattern.declaredElement2, use declaredElement instead.
    • Deprecate EnumConstantDeclaration.constructorElement2, use constructorElement instead.
    • Deprecate ExtensionOverride.element2, use element instead.
    • Deprecate FunctionBody.isPotentiallyMutatedInScope2, use isPotentiallyMutatedInScope instead.
    • Deprecate ImportPrefixReference.element2, use element instead.
    • Deprecate LibraryDirective.element2, use element instead.
    • Deprecate LibraryDirective.name2, use name instead.
    • Deprecate NamedExpression.element2, use element instead.
    • Deprecate NamedType.element2, use element instead.
    • Deprecate PatternField.element2, use element instead.
    • Deprecate RelationalPattern.element2, use element instead.
    • Deprecate VariableDeclaration.declaredElement2, use declaredElement instead.
    • Deprecate InterfaceType.methods2, use methods instead.
    • Deprecate Fragment.name2, use name instead.
    • Deprecate Element.name3, use name instead.
    • Deprecate ConstructorElement.redirectedConstructor2, use redirectedConstructor instead.
    • Deprecate ConstructorElement.superConstructor2, use superConstructor˙ instead.
    • Deprecate Element.children2, use children instead.
    • Deprecate Element.displayString2, use displayString instead.
    • Deprecate Element.getExtendedDisplayName2, use getExtendedDisplayName instead.
    • Deprecate Element.isAccessibleIn2, use isAccessibleIn instead.
    • Deprecate Element.thisOrAncestorMatching2, use thisOrAncestorMatching instead.
    • Deprecate Element.thisOrAncestorOfType2, use thisOrAncestorOfType instead.
    • Deprecate EnumElement.constants2, use constants instead.
    • Deprecate FieldFormalParameterElement.field2, use field instead.
    • Deprecate FormalParameterElement.typeParameters2, use typeParameters instead.
    • Deprecate Fragment.children3, use children instead.
    • Deprecate DartType.asInstanceOf2, use asInstanceOf instead.
    • Deprecate TypeSystem.instantiateInterfaceToBounds2, use instantiateInterfaceToBounds instead.
    • Deprecate TypeSystem.instantiateTypeAliasToBounds2, use instantiateTypeAliasToBounds instead.
    • Deprecate FormalParameterElement.appendToWithoutDelimiters, use appendToWithoutDelimiters instead.
    • Deprecate GetterElement.correspondingSetter2, use correspondingSetter instead.
    • Deprecate InterfaceElement.unnamedConstructor2, use unnamedConstructor instead.
    • Deprecate InterfaceElement.getNamedConstructor2, use getNamedConstructor instead.
    • Deprecate TypeParameterizedElement.typeParameters2, use typeParameters instead.
    • Deprecate FormalParameterElement.appendToWithoutDelimiters2, use appendToWithoutDelimiters instead.
    • Deprecate GetterElement.correspondingSetter2, use correspondingSetter instead.
    • Deprecate InterfaceElement.unnamedConstructor2, use unnamedConstructor instead.
    • Deprecate InterfaceElement.getNamedConstructor2, use getNamedConstructor instead.
    • Deprecate LibraryElement.entryPoint2, use entryPoint instead.
    • Deprecate LibraryElement.exportedLibraries2, use exportedLibraries instead.
    • Deprecate LibraryElement.getClass2, use getClass instead.
    • Deprecate LibraryElement.getEnum2, use getEnum instead.
    • Deprecate LibraryElement.getMixin2, use getMixin instead.
    • Deprecate LibraryExport.exportedLibrary2, use exportedLibrary instead.
    • Deprecate LibraryFragment.accessibleExtensions2, use accessibleExtensions instead.
    • Deprecate LibraryFragment.importedLibraries2, use importedLibraries instead.
    • Deprecate LibraryImport.importedLibrary2, use importedLibrary instead.
    • Deprecate MixinElement.isImplementableIn2, use isImplementableIn instead.
    • Deprecate PatternVariableElement.join2, use join instead.
    • Deprecate PropertyAccessorElement.variable3, use variable instead.
    • Deprecate PropertyInducingElement.getter2, use getter instead.
    • Deprecate PropertyInducingElement.setter2, use setter instead.
    • Deprecate SetterElement.correspondingGetter2, use correspondingGetter instead.
    • Deprecate SuperFormalParameterElement.superConstructorParameter2, use superConstructorParameter instead.
    • Deprecate TypeAliasElement.aliasedElement2, use aliasedElement instead.
    • Deprecate TypeParameterizedElement.typeParameters2, use typeParameters instead.
    • Deprecate VariableElement.constantInitializer2, use constantInitializer instead.
    • Deprecate TypeProvider.isNonSubtypableClass2, use isNonSubtypableClass instead.
    • Deprecate EnumFragment.constants2, use constants instead.
    • Deprecate InterfaceElement.lookUpInheritedMethod2, use lookUpInheritedMethod instead.
    • Deprecate LibraryFragment.classes2, use classes instead.
    • Deprecate LibraryFragment.enums2, use enums instead.
    • Deprecate LibraryFragment.extensionTypes2, use extensionTypes instead.
    • Deprecate LibraryFragment.extensions2, use extensions instead.
    • Deprecate LibraryFragment.functions2, use functions instead.
    • Deprecate LibraryFragment.libraryExports2, use libraryExports instead.
    • Deprecate LibraryFragment.libraryImports2, use libraryImports instead.
    • Deprecate LibraryFragment.mixins2, use mixins instead.
    • Deprecate LibraryFragment.topLevelVariables2, use topLevelVariables instead.
    • Deprecate LibraryFragment.typeAliases2, use typeAliases instead.
    • Deprecate PatternVariableFragment.join2, use join instead.
    • Deprecate LibraryFragment.isNonSubtypableClass2, use isNonSubtypableClass instead.
    • Deprecate TypeParameterizedFragment.typeParameters2, use typeParameters instead.
    • Deprecate Fragment.nameOffset2, use nameOffset instead.
    • Deprecate DirectiveUriWithLibrary.library2, use library instead.
    • Deprecate ElementAnnotation.element2, use element instead.
    • Deprecate LibraryImport.prefix2, use prefix instead.
    • Deprecate MultiplyDefinedElement.conflictingElements2, use conflictingElements instead.
    • Deprecate ScopeLookupResult.getter2, use getter instead.
    • Deprecate ScopeLookupResult.setter2, use setter instead.
    Open source →
  23. 7.7.1 22 Jul 2025

    Nothing published for this version

  24. 7.7.0 16 Jul 2025
    Release notes
    • Deprecated HasSinceSdkVersion, use Element2.sinceSdkVersion.
    Open source →
  25. 7.6.0 16 Jul 2025
    Release notes
    • Deprecated VariableElement.constantInitializer2, use constantInitializer instead.
    • Deprecated VariableFragment.initializer, use VariableElement.constantInitializer instead.
    • Deprecated ConstantInitializer.
    Open source →
  26. 7.5.9 14 Jul 2025
    Release notes
    • Deprecated JoinPatternVariableFragment.isConsistent and variables2. Use corresponding properties of JoinPatternVariableElement2 instead.
    Open source →
  27. 7.5.8 14 Jul 2025
    Release notes
    • Add a special case for bool.fromEnvironment('dart.library.js_interop') Cherry-pick https://dart-review.googlesource.com/c/sdk/+/439820
    Open source →
  28. 7.5.7 12 Jul 2025
    Release notes
    • Deprecate LocalVariableFragment.nameOffset, use nameOffset2 instead.
    Open source →
  29. 7.5.6 09 Jul 2025
    Release notes
    • Deprecate EnumFragment.constants2, use EnumElement2.constants2 instead.
    Open source →
  30. 7.5.5 07 Jul 2025
    Release notes
    • Deprecate LocalVariableElement.hasInitializer and LocalVariableFragment.hasInitializer. This property is not useful and was not de-facto used.
    Open source →
  31. 7.5.4 02 Jul 2025
    Release notes
    • Deprecate PromotableFragment and PromotableElement. These interfaces are implementation details.
    Open source →
  32. 7.5.3 02 Jul 2025
    Release notes
    • Deprecate AugmentedExpression and AugmentedInvocation. This feature was removed from the specification.
    Open source →
  33. 7.5.2 26 Jun 2025
    Release notes
    • Deprecate LibraryElement.identifier, use uri instead.
    • Deprecate LibraryElement2.identifier, use uri instead.
    Open source →
  34. 7.5.1 25 Jun 2025
    Release notes
    • Deprecate ConstantEvaluationTarget itself, and its methods.
    • Deprecate methods of already deprecated AnalysisTarget.
    • Generate api.txt manifest.
    Open source →
  35. 7.5.0 25 Jun 2025
    Release notes
    • Deprecate methods inherited by ElementAnnotation from ConstantEvaluationTarget.
    • In the next major version ElementAnnotation will stop implementing ConstantEvaluationTarget.
    • Add ElementAnnotation.libraryFragment, as the replacement for the deprecations above. It provides enough information about the location.
    Open source →
  36. 7.4.6 23 Jun 2025
    Release notes
    • Deprecate PropertyAccessorFragment.variable3. Use PropertyAccessorElement2.variable3 instead.
    • Deprecate PropertyInducingFragment.getter2. Use PropertyInducingElement2.getter2 instead.
    • Deprecate PropertyInducingFragment.setter2. Use PropertyInducingElement2.setter2 instead.
    Open source →
  37. 7.4.5 07 May 2025
    Release notes
    • Fix for https://github.com/dart-lang/sdk/issues/60683
    Open source →
  38. 7.4.4 22 Apr 2025
    Release notes
    • Fix for https://github.com/dart-lang/sdk/issues/60553, LabelElement2.
    Open source →
  39. 7.4.3 22 Apr 2025
    Release notes
    • Fix for https://github.com/dart-lang/sdk/issues/60591
    Open source →
  40. 7.4.2 21 Apr 2025
    Release notes
    • Fix for https://github.com/dart-lang/sdk/issues/60553, PrefixElement2.
    Open source →
  41. 7.4.1 17 Apr 2025
    Release notes
    • Restore InstanceElement.augmented getter. 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 of Element2.
    Open source →
  42. 7.4.0 15 Apr 2025
    Release notes
    • Updated SDK constraint to ^3.5.0.
    • Deprecated element model V1. See migration guide.
    Open source →
  43. 7.3.0 07 Feb 2025
    Release notes
    • Add flags optional named parameter to FeatureSet.latestLanguageVersion().
    Open source →
  44. 7.2.0 17 Jan 2025
    Release notes
    • Add ElementDirective as superinterface for LibraryExport, LibraryImport, and PartInclude. It implements Annotatable.
    Open source →
  45. 7.1.0 16 Dec 2024
    Release notes
    • New APIs for element model with fragments.
    Open source →
  46. 7.0.0 20 Nov 2024
    Release notes
    • 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.getProperty and AstNode.setProperty.
    • Remove File.createSource(), it violates levels of abstraction. You can get Source instances from AnalysisResults.
    • Remove deprecated LibraryElement.toLegacyTypeIfOptOut.
    • Remove deprecated LibraryElement.toLegacyElementIfOptOut.
    • Remove deprecated LibraryElement.isNonNullableByDefault.
    • Remove deprecated File.changes and Folder.changes.
    • Remove deprecated Resource.parent2.
    • Remove deprecated OnClause.
    • Remove deprecated ContextBuilder, use AnalysisContextCollection.
    • Remove deprecated ContextLocator, use AnalysisContextCollection.
    • 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 LibraryElement properties.
    • Remove deprecated enabledPluginNames and hint from AnalysisOptions.
    • Remove deprecated source_io.dart.
    • Remove deprecated lint/Spelunker.
    • Remove deprecated source_resource.dart.
    • Remove MultiplyInheritedExecutableElement.
    • Remove AnalyzeFunctionBodiesPredicate.
    • Remove normalParameterNames and optionalParameterNames from FunctionType.
    Open source →
  47. 6.11.0 10 Oct 2024
    Release notes
    • Un-deprecated LibraryElement.exportedLibraries.
    • Un-deprecated LibraryElement.importedLibraries.
    Open source →
  48. 6.10.0 08 Oct 2024
    Release notes
    • Deprecated LibraryElement.accessibleExtensions, use CompilationUnitElement.accessibleExtensions instead.
    • Deprecated LibraryElement.exportedLibraries.
    • Deprecated LibraryElement.importedLibraries.
    • Deprecated LibraryElement.isBrowserApplication.
    • Deprecated LibraryElement.libraryExports, use CompilationUnitElement.libraryExports instead.
    • Deprecated LibraryElement.libraryImports, use CompilationUnitElement.libraryImports instead.
    • Deprecated LibraryElement.prefixes, use CompilationUnitElement.libraryImportPrefixes instead.
    • Deprecated LibraryElement.parts, use CompilationUnitElement.parts instead.
    • Deprecated LibraryElement.scope, use CompilationUnitElement.scope instead.
    Open source →
  49. 6.9.0 05 Sep 2024
    Release notes
    • NormalFormalParameter now implements AnnotatedNode.
    • Deprecated Element.enclosingElement, use enclosingElement3.
    Open source →
  50. 6.8.0 15 Jul 2024
    Release notes
    • Add AnalysisContextCollection.dispose(). It must be invoked at the end.
    • Deprecated ContextLocator and ContextBuilder. Use AnalysisContextCollection instead.
    Open source →
  51. 6.7.0 16 Jun 2024
    Release notes
    • Deprecated File.createSource(), it violates levels of abstraction. You can get Source instances from AnalysisResults.
    • Deprecated unused static members of AnalysisError.
    Open source →
  52. 6.6.0 13 Jun 2024
    Release notes
    • Stop exporting src/file_system/file_system.dart from file_system/file_system.dart.
    • Deprecated package:analyzer/src/source/source_resource.dart, import package:analyzer/source/file_source.dart instead.
    • Deprecated exports from package:analyzer/src/source/source.dart, import package:analyzer/source/source.dart instead.
    Open source →
  53. 6.5.2 30 May 2024
    Release notes
    • Updated constraints macros: '>=0.1.2-0 <0.1.3'.
    Open source →
  54. 6.5.1 28 May 2024
    Release notes
    • Updated constraints macros: '>=0.1.1-0 <0.1.2'.
    Open source →
  55. 6.5.0 30 Apr 2024
    Release notes
    • Deprecated LibraryElement.toLegacyTypeIfOptOut.
    • Deprecated LibraryElement.toLegacyElementIfOptOut.
    • Deprecated LibraryElement.isNonNullableByDefault.
    • Deprecated InterfaceElement.lookUpGetter, InterfaceElement.lookUpMethod, and InterfaceElement.lookUpSetter.
    • Fixed GeneralizingAstVisitor.visitNamedType to invoke visitTypeAnnotation.
    • Deprecated PropertyInducingElement get variable in PropertyAccessorElement, use PropertyInducingElement? get variable2 instead. The reason for this is that when the property accessor is an augmentation without the corresponding declaration, there is no corresponding variable.
    • Deprecated ExtensionDeclaration.onKeyword and extendedType. Use ExtensionOnClause? get onClause instead. Extension augmentations are not allowed to have onClause.
    • Deprecated OnClause, use MixinOnClause instead.
    • Support new meta annotation: @doNotSubmit.
    • Support new meta annotation: @mustBeConst.
    • Support new meta TargetKinds: constructor, directive, enumValue, and typeParameter.
    • Fix for accessing constants from extension type, when import prefixed.
    • Deprecated AstNode.getProperty and AstNode.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.
    Open source →
  56. 6.4.1 30 Jan 2024
    Release notes
    • Patch for crash in ffi_verifier.
    Open source →
  57. 6.4.0 22 Jan 2024

    Nothing published for this version

  58. 6.3.0 11 Oct 2023
    Release notes
    • Updated the current language version to 3.3.
    • Removed generated ConstantEvaluator.
    Open source →
  59. 6.2.0 14 Aug 2023
    Release notes
    • Improvements for extension types.
    • Heap usage improvements.
    Open source →
  60. 6.1.0 04 Aug 2023
    Release notes
    • Added InstanceElement, a super-interface for InterfaceElement and ExtensionElement.
    • Added TypeSystem.greatestLowerBound.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive