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.
Used to annotate a method, getter, top-level function, or top-level getter
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.
Used to annotate an optional parameter, method, getter or top-level getter
or function that is not intended to be accessed in checked-in code, but
might be ephemerally used during development or local testing.
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.
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.
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.
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.
Used to annotate an instance member (method, getter, setter, operator, or
field) m. Indicates that every invocation of a member that overrides m
must also invoke m. In addition, every method that overrides m is
implicitly annotated with this same annotation.
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.
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.
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.
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.
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).
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.