meta library Null safety

Annotations that developers can use to express the intentions that otherwise can't be deduced by statically analyzing the source code.

See also @deprecated and @override in the dart:core library.

Annotations provide semantic information that tools can use to provide a better user experience. For example, an IDE might not autocomplete the name of a function that's been marked @deprecated, or it might display the function's name differently.

For information on installing and importing this library, see the meta package on pub.dev. For examples of using annotations, see Metadata in the language tour.

Classes

Immutable
Used to annotate a class.
Required
Used to annotate a named parameter p in a method or function f.
UseResult
See useResult for more details.

Constants

alwaysThrows → const _AlwaysThrows
Used to annotate a function f. Indicates that f always throws an exception. Any functions that override f, in class inheritance, are also expected to conform to this contract.
_AlwaysThrows()
checked → const _Checked
Used to annotate a parameter of an instance method that overrides another method.
Deprecated('Use the `covariant` modifier instead')">@Deprecated('Use the `covariant` modifier instead')
_Checked()
doNotStore → const _DoNotStore
Used to annotate a method, getter or top-level getter or function to indicate that the value obtained by invoking it should not be stored in a field or top-level variable. The annotation can also be applied to a class to implicitly annotate all of the valid members of the class, or applied to a library to annotate all of the valid members of the library, including classes. If a value returned by an element marked as doNotStore is returned from a function or getter, that function or getter should be similarly annotated.
_DoNotStore()
experimental → const _Experimental
Used to annotate a library, or any declaration that is part of the public interface of a library (such as top-level members, class members, and function parameters) to indicate that the annotated API is experimental and may be removed or changed at any-time without updating the version of the containing package, despite the fact that it would otherwise be a breaking change.
_Experimental()
factory → const _Factory
Used to annotate an instance or static method m. Indicates that m must either be abstract or must return a newly allocated object or null. In addition, every method that either implements or overrides m is implicitly annotated with this same annotation.
_Factory()
immutable → const Immutable
Used to annotate a class C. Indicates that C and all subtypes of C must be immutable.
internal → const _Internal
Used to annotate a declaration which should only be used from within the package in which it is declared, and which should not be exposed from said package's public API.
_Internal()
isTest → const _IsTest
Used to annotate a test framework function that runs a single test.
_IsTest()
isTestGroup → const _IsTestGroup
Used to annotate a test framework function that runs a group of tests.
_IsTestGroup()
literal → const _Literal
Used to annotate a const constructor c. Indicates that any invocation of the constructor must use the keyword const unless one or more of the arguments to the constructor is not a compile-time constant.
_Literal()
mustCallSuper → const _MustCallSuper
Used to annotate an instance method m. Indicates that every invocation of a method that overrides m must also invoke m. In addition, every method that overrides m is implicitly annotated with this same annotation.
_MustCallSuper()
nonVirtual → const _NonVirtual
Used to annotate an instance member (method, getter, setter, operator, or field) m in a class C or mixin M. Indicates that m should not be overridden in any classes that extend or mixin C or M.
_NonVirtual()
optionalTypeArgs → const _OptionalTypeArgs
Used to annotate a class, mixin, extension, function, method, or typedef declaration C. Indicates that any type arguments declared on C are to be treated as optional.
_OptionalTypeArgs()
protected → const _Protected
Used to annotate an instance member in a class or mixin which is meant to be visible only within the declaring library, and to other instance members of the class or mixin, and their subtypes.
_Protected()
required → const Required
Used to annotate a named parameter p in a method or function f. Indicates that every invocation of f must include an argument corresponding to p, despite the fact that p would otherwise be an optional parameter.
sealed → const _Sealed
Annotation marking a class as not allowed as a super-type.
_Sealed()
useResult → const UseResult
Used to annotate a method, field, or getter within a class, mixin, or extension, or a or top-level getter, variable or function to indicate that the value obtained by invoking it should be used. A value is considered used if it is assigned to a variable, passed to a function, or used as the target of an invocation, or invoked (if the result is itself a function).
virtual → const _Virtual
Used to annotate a field that is allowed to be overridden in Strong Mode.
Deprecated('No longer has meaning')">@Deprecated('No longer has meaning')
_Virtual()
visibleForOverriding → const _VisibleForOverriding
Used to annotate an instance member that was made public so that it could be overridden but that is not intended to be referenced from outside the defining library.
_VisibleForOverriding()
visibleForTesting → const _VisibleForTesting
Used to annotate a declaration that was made public, so that it is more visible than otherwise necessary, to make code testable.
_VisibleForTesting()