description

# pragma class final

A hint to tools.

Tools that work with Dart programs may accept hints to guide their behavior as `pragma` annotations on declarations. Each tool decides which hints it accepts, what they mean, and whether and how they apply to sub-parts of the annotated entity.

Tools that recognize pragma hints should pick a pragma prefix to identify the tool. They should recognize any hint with a name starting with their prefix followed by `:` as if it was intended for that tool. A hint with a prefix for another tool should be ignored (unless compatibility with that other tool is a goal).

A tool may recognize unprefixed names as well, if they would recognize that name with their own prefix in front.

If the hint can be parameterized, an extra options object can be added as well.

For example:

    @pragma('Tool:pragma-name', [param1, param2, ...])
    class Foo { }

    @pragma('OtherTool:other-pragma')
    void foo() { }

Here class `Foo` is annotated with a Tool specific pragma 'pragma-name' and function `foo` is annotated with a pragma 'other-pragma' specific to OtherTool.

## Constructors

pragma(String name, [Object? options])
  Creates a hint named `name` with optional `options`.
  const
  factory

## Properties

hashCode → int
  The hash code for this object.
  no setterinherited
name → String
  The name of the hint.
  final
options → Object?
  Optional extra data parameterizing the hint.
  final
runtimeType → Type
  A representation of the runtime type of the object.
  no setterinherited

## Methods

noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
toString() → String
  A string representation of this object.
  inherited

## Operators

operator ==(Object other) → bool
  The equality operator.
  inherited