Package com.oracle.truffle.api.dsl

## Annotation Type Specialization

    @Retention(RUNTIME)
    @Target(METHOD)
    public @interface Specialization

### Field Summary

Fields
`static int` `DEFAULT_ORDER` Deprecated. do not use anymore.

### Optional Element Summary

Optional Elements
`java.lang.String[]` `assumptions` Defines the assumptions to check for this specialization.
`java.lang.String[]` `contains` The contains attribute declares all specializations that are contained by this specialization.
`java.lang.String[]` `guards`
`java.lang.String` `insertBefore` Inserts this and all specializations that are declared after this specialization before a specialization in the superclass.
`int` `order` Deprecated. use declaration order instead.
`java.lang.Class<? extends java.lang.Throwable>[]` `rewriteOn`

### Field Detail

#### DEFAULT_ORDER

    @Deprecated
    static final int DEFAULT_ORDER

Deprecated.
do not use anymore. Will get removed in the next release.

### Element Detail

#### order

    @Deprecated
    int order

Deprecated.
use declaration order instead. Will get removed in the next release.
The order has no effect anymore. The declaration order specialization methods is used instead.

Default:
  -1

#### insertBefore

    java.lang.String insertBefore

Inserts this and all specializations that are declared after this specialization before a specialization in the superclass. By default all specializations of the subclass are appended to the specializations of the superclass.

Default:
  ""

#### rewriteOn

    java.lang.Class<? extends java.lang.Throwable>[] rewriteOn

Default:
  {}

#### contains

    java.lang.String[] contains

The contains attribute declares all specializations that are contained by this specialization. A containing specialization must be strictly generic as the contained specialization.

Default:
  {}

#### guards

    java.lang.String[] guards

Default:
  {}

#### assumptions

    java.lang.String[] assumptions

Defines the assumptions to check for this specialization. When the specialization method is invoked it is guaranteed that these assumptions still hold. It is not guaranteed that they are checked before the `guards()` methods. They may be checked before after or in between `guards()`. To declare assumptions use the `NodeAssumptions` annotation at class level.

Default:
  {}