Annotation Interface CompilerDirectives.CompilationFinal

Enclosing class:
CompilerDirectives

@Retention(RUNTIME) @Target(FIELD) public static @interface CompilerDirectives.CompilationFinal
Marks fields that should be considered final for a Truffle compilation although they are not final while executing in the interpreter. If the field type is an array type, the compiler considers reads with a constant index as constants.
Since:
0.8 or earlier
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    int
    Specifies the number of array dimensions to be marked as compilation final.
  • Element Details

    • dimensions

      int dimensions
      Specifies the number of array dimensions to be marked as compilation final. This value should be specified for all array-typed compilation-final fields and should be left unspecified for other field types for which it has no meaning. The allowed range is from 0 to the number of declared array dimensions (inclusive). Specifically, a dimensions value of 0 marks only the reference to the (outermost) array as final but not its elements, a value of 1 marks the outermost array and all its elements as final but not the elements of any nested arrays. For compatibility reasons, array-typed fields without an explicit dimensions parameter default to the number of array dimensions declared in the field type.
      Since:
      0.14
      Default:
      -1