Types (groovy 2.5.0 API)
Date: 2018-05-27

Package: org.codehaus.groovy.syntax

## [Java] Class Types

- org.codehaus.groovy.syntax.Types

- Typing information for the CST system. The types here are those used by CSTNode, Token, and Reduction.

  Authors:
    bob mcwhirter
    Chris Poirier

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static int` | `ANY` |
    `static int` | `ANY_END_OF_STATEMENT` |
    `static int` | `ARRAY_EXPRESSION` |
    `static int` | `ARRAY_ITEM_TERMINATORS` |
    `static int` | `ASSIGN` |
    `static int` | `ASSIGNMENT_OPERATOR` |
    `static int` | `BITWISE_AND` |
    `static int` | `BITWISE_AND_EQUAL` |
    `static int` | `BITWISE_NEGATION` |
    `static int` | `BITWISE_OPERATOR` |
    `static int` | `BITWISE_OR` |
    `static int` | `BITWISE_OR_EQUAL` |
    `static int` | `BITWISE_XOR` |
    `static int` | `BITWISE_XOR_EQUAL` |
    `static int` | `COLON` |
    `static int` | `COMMA` |
    `static int` | `COMPARE_EQUAL` |
    `static int` | `COMPARE_GREATER_THAN` |
    `static int` | `COMPARE_GREATER_THAN_EQUAL` |
    `static int` | `COMPARE_IDENTICAL` |
    `static int` | `COMPARE_LESS_THAN` |
    `static int` | `COMPARE_LESS_THAN_EQUAL` |
    `static int` | `COMPARE_NOT_EQUAL` |
    `static int` | `COMPARE_NOT_IDENTICAL` |
    `static int` | `COMPARE_TO` |
    `static int` | `COMPARISON_OPERATOR` |
    `static int` | `COMPLEX_EXPRESSION` |
    `static int` | `CREATABLE_PRIMITIVE_TYPE` |
    `static int` | `CREATABLE_TYPE_NAME` |
    `static int` | `DECIMAL_NUMBER` |
    `static int` | `DECLARATION_MODIFIER` |
    `static int` | `DEREFERENCE_OPERATOR` |
    `static int` | `DIVIDE` |
    `static int` | `DIVIDE_EQUAL` |
    `static int` | `DOT` |
    `static int` | `DOT_DOT` |
    `static int` | `DOT_DOT_DOT` |
    `static int` | `DOUBLE_PIPE` |
    `static int` | `EOF` |
    `static int` | `EQUAL` |
    `static int` | `EQUALS` |
    `static int` | `EXPRESSION` |
    `static int` | `FIND_REGEX` |
    `static int` | `GENERAL_END_OF_STATEMENT` |
    `static int` | `GSTRING_END` |
    `static int` | `GSTRING_EXPRESSION_END` |
    `static int` | `GSTRING_EXPRESSION_START` |
    `static int` | `GSTRING_START` |
    `static int` | `IDENTIFIER` |
    `static int` | `INFIX_OPERATOR` |
    `static int` | `INTDIV` |
    `static int` | `INTDIV_EQUAL` |
    `static int` | `INTEGER_NUMBER` |
    `static int` | `KEYWORD` |
    `static int` | `KEYWORD_ABSTRACT` |
    `static int` | `KEYWORD_AS` |
    `static int` | `KEYWORD_ASSERT` |
    `static int` | `KEYWORD_BOOLEAN` |
    `static int` | `KEYWORD_BREAK` |
    `static int` | `KEYWORD_BYTE` |
    `static int` | `KEYWORD_CASE` |
    `static int` | `KEYWORD_CATCH` |
    `static int` | `KEYWORD_CHAR` |
    `static int` | `KEYWORD_CLASS` |
    `static int` | `KEYWORD_CONST` |
    `static int` | `KEYWORD_CONTINUE` |
    `static int` | `KEYWORD_DEF` |
    `static int` | `KEYWORD_DEFAULT` |
    `static int` | `KEYWORD_DEFMACRO` |
    `static int` | `KEYWORD_DO` |
    `static int` | `KEYWORD_DOUBLE` |
    `static int` | `KEYWORD_ELSE` |
    `static int` | `KEYWORD_EXPRESSION` |
    `static int` | `KEYWORD_EXTENDS` |
    `static int` | `KEYWORD_FALSE` |
    `static int` | `KEYWORD_FINAL` |
    `static int` | `KEYWORD_FINALLY` |
    `static int` | `KEYWORD_FLOAT` |
    `static int` | `KEYWORD_FOR` |
    `static int` | `KEYWORD_GOTO` |
    `static int` | `KEYWORD_IDENTIFIER` |
    `static int` | `KEYWORD_IF` |
    `static int` | `KEYWORD_IMPLEMENTS` |
    `static int` | `KEYWORD_IMPORT` |
    `static int` | `KEYWORD_IN` |
    `static int` | `KEYWORD_INSTANCEOF` |
    `static int` | `KEYWORD_INT` |
    `static int` | `KEYWORD_INTERFACE` |
    `static int` | `KEYWORD_LONG` |
    `static int` | `KEYWORD_MIXIN` |
    `static int` | `KEYWORD_NATIVE` |
    `static int` | `KEYWORD_NEW` |
    `static int` | `KEYWORD_NULL` |
    `static int` | `KEYWORD_PACKAGE` |
    `static int` | `KEYWORD_PRIVATE` |
    `static int` | `KEYWORD_PROPERTY` |
    `static int` | `KEYWORD_PROTECTED` |
    `static int` | `KEYWORD_PUBLIC` |
    `static int` | `KEYWORD_RETURN` |
    `static int` | `KEYWORD_SHORT` |
    `static int` | `KEYWORD_STATIC` |
    `static int` | `KEYWORD_SUPER` |
    `static int` | `KEYWORD_SWITCH` |
    `static int` | `KEYWORD_SYNCHRONIZED` |
    `static int` | `KEYWORD_THIS` |
    `static int` | `KEYWORD_THROW` |
    `static int` | `KEYWORD_THROWS` |
    `static int` | `KEYWORD_TRANSIENT` |
    `static int` | `KEYWORD_TRUE` |
    `static int` | `KEYWORD_TRY` |
    `static int` | `KEYWORD_VOID` |
    `static int` | `KEYWORD_VOLATILE` |
    `static int` | `KEYWORD_WHILE` |
    `static int` | `LEFT_CURLY_BRACE` |
    `static int` | `LEFT_OF_MATCHED_CONTAINER` |
    `static int` | `LEFT_PARENTHESIS` |
    `static int` | `LEFT_SHIFT` |
    `static int` | `LEFT_SHIFT_EQUAL` |
    `static int` | `LEFT_SQUARE_BRACKET` |
    `static int` | `LITERAL` |
    `static int` | `LITERAL_EXPRESSION` |
    `static int` | `LOGICAL_AND` |
    `static int` | `LOGICAL_AND_EQUAL` |
    `static int` | `LOGICAL_OPERATOR` |
    `static int` | `LOGICAL_OR` |
    `static int` | `LOGICAL_OR_EQUAL` |
    `static int` | `LOOP` |
    `static int` | `MATCHED_CONTAINER` |
    `static int` | `MATCH_REGEX` |
    `static int` | `MATH_OPERATOR` |
    `static int` | `METHOD_CALL_STARTERS` |
    `static int` | `MINUS` |
    `static int` | `MINUS_EQUAL` |
    `static int` | `MINUS_MINUS` |
    `static int` | `MOD` |
    `static int` | `MOD_EQUAL` |
    `static int` | `MULTIPLY` |
    `static int` | `MULTIPLY_EQUAL` |
    `static int` | `NAMED_VALUE` |
    `static int` | `NAVIGATE` |
    `static int` | `NEWLINE` |
    `static int` | `NOT` |
    `static int` | `NOT_EOF` |
    `static int` | `NUMBER` |
    `static int` | `OPERATOR_EXPRESSION` |
    `static int` | `OPTIONAL_DATATYPE_FOLLOWERS` |
    `static int` | `PARAMETER_TERMINATORS` |
    `static int` | `PIPE` |
    `static int` | `PLUS` |
    `static int` | `PLUS_EQUAL` |
    `static int` | `PLUS_PLUS` |
    `static int` | `POSTFIX_MINUS_MINUS` |
    `static int` | `POSTFIX_OPERATOR` |
    `static int` | `POSTFIX_PLUS_PLUS` |
    `static int` | `POWER` |
    `static int` | `POWER_EQUAL` |
    `static int` | `PRECLUDES_CAST_OPERATOR` |
    `static int` | `PREFIX_MINUS` |
    `static int` | `PREFIX_MINUS_MINUS` |
    `static int` | `PREFIX_OPERATOR` |
    `static int` | `PREFIX_OR_INFIX_OPERATOR` |
    `static int` | `PREFIX_PLUS` |
    `static int` | `PREFIX_PLUS_PLUS` |
    `static int` | `PRIMITIVE_TYPE` |
    `static int` | `PURE_PREFIX_OPERATOR` |
    `static int` | `QUESTION` |
    `static int` | `RANGE_OPERATOR` |
    `static int` | `REGEX_COMPARISON_OPERATOR` |
    `static int` | `REGEX_PATTERN` |
    `static int` | `RESERVED_KEYWORD` |
    `static int` | `RIGHT_CURLY_BRACE` |
    `static int` | `RIGHT_OF_MATCHED_CONTAINER` |
    `static int` | `RIGHT_PARENTHESIS` |
    `static int` | `RIGHT_SHIFT` |
    `static int` | `RIGHT_SHIFT_EQUAL` |
    `static int` | `RIGHT_SHIFT_UNSIGNED` |
    `static int` | `RIGHT_SHIFT_UNSIGNED_EQUAL` |
    `static int` | `RIGHT_SQUARE_BRACKET` |
    `static int` | `SEMICOLON` |
    `static int` | `SIGN` |
    `static int` | `SIMPLE_EXPRESSION` |
    `static int` | `STAR` |
    `static int` | `STAR_STAR` |
    `static int` | `STRING` |
    `static int` | `SWITCH_BLOCK_TERMINATORS` |
    `static int` | `SWITCH_ENTRIES` |
    `static int` | `SYMBOL` |
    `static int` | `SYNTHETIC` |
    `static int` | `SYNTH_BLOCK` |
    `static int` | `SYNTH_CAST` |
    `static int` | `SYNTH_CLASS` |
    `static int` | `SYNTH_CLOSURE` |
    `static int` | `SYNTH_COMPILATION_UNIT` |
    `static int` | `SYNTH_EXPRESSION` |
    `static int` | `SYNTH_GSTRING` |
    `static int` | `SYNTH_INTERFACE` |
    `static int` | `SYNTH_LABEL` |
    `static int` | `SYNTH_LIST` |
    `static int` | `SYNTH_MAP` |
    `static int` | `SYNTH_METHOD` |
    `static int` | `SYNTH_METHOD_CALL` |
    `static int` | `SYNTH_MIXIN` |
    `static int` | `SYNTH_PARAMETER_DECLARATION` |
    `static int` | `SYNTH_PROPERTY` |
    `static int` | `SYNTH_TERNARY` |
    `static int` | `SYNTH_TUPLE` |
    `static int` | `SYNTH_VARIABLE_DECLARATION` |
    `static int` | `TRUTH_VALUE` |
    `static int` | `TYPE_DECLARATION` |
    `static int` | `TYPE_LIST_TERMINATORS` |
    `static int` | `TYPE_NAME` |
    `static int` | `UNKNOWN` |
    `static int` | `UNSAFE_OVER_NEWLINES` |

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `static boolean` | `canMean(int actual, int preferred)` Given two types, returns true if the first can be viewed as the second.
    `` | `static String` | `getDescription(int type)` Gets the description for the specified type.
    `` | `static Collection<String>` | `getKeywords()`
    `` | `static int` | `getPrecedence(int type, boolean throwIfInvalid)` Returns the precedence of the specified operator.
    `` | `static String` | `getText(int type)` Returns the text for the specified type.
    `` | `static boolean` | `isKeyword(String text)`
    `` | `static int` | `lookup(String text, int filter)` Returns the type for the specified symbol/keyword text.
    `` | `static int` | `lookupKeyword(String text)` Returns the type for the specified keyword text.
    `` | `static int` | `lookupSymbol(String text)` Returns the type for the specified symbol text.
    `` | `static void` | `makePostfix(CSTNode node, boolean throwIfInvalid)` Converts a node from a generic type to a specific postfix type.
    `` | `static void` | `makePrefix(CSTNode node, boolean throwIfInvalid)` Converts a node from a generic type to a specific prefix type.
    `` | `static boolean` | `ofType(int specific, int general)` Given two types, returns true if the second describes the first.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Field Detail

    - #### public static final int ANY

    - #### public static final int ANY_END_OF_STATEMENT

    - #### public static final int ARRAY_EXPRESSION

    - #### public static final int ARRAY_ITEM_TERMINATORS

    - #### public static final int ASSIGN

    - #### public static final int ASSIGNMENT_OPERATOR

    - #### public static final int BITWISE_AND

    - #### public static final int BITWISE_AND_EQUAL

    - #### public static final int BITWISE_NEGATION

    - #### public static final int BITWISE_OPERATOR

    - #### public static final int BITWISE_OR

    - #### public static final int BITWISE_OR_EQUAL

    - #### public static final int BITWISE_XOR

    - #### public static final int BITWISE_XOR_EQUAL

    - #### public static final int COLON

    - #### public static final int COMMA

    - #### public static final int COMPARE_EQUAL

    - #### public static final int COMPARE_GREATER_THAN

    - #### public static final int COMPARE_GREATER_THAN_EQUAL

    - #### public static final int COMPARE_IDENTICAL

    - #### public static final int COMPARE_LESS_THAN

    - #### public static final int COMPARE_LESS_THAN_EQUAL

    - #### public static final int COMPARE_NOT_EQUAL

    - #### public static final int COMPARE_NOT_IDENTICAL

    - #### public static final int COMPARE_TO

    - #### public static final int COMPARISON_OPERATOR

    - #### public static final int COMPLEX_EXPRESSION

    - #### public static final int CREATABLE_PRIMITIVE_TYPE

    - #### public static final int CREATABLE_TYPE_NAME

    - #### public static final int DECIMAL_NUMBER

    - #### public static final int DECLARATION_MODIFIER

    - #### public static final int DEREFERENCE_OPERATOR

    - #### public static final int DIVIDE

    - #### public static final int DIVIDE_EQUAL

    - #### public static final int DOT

    - #### public static final int DOT_DOT

    - #### public static final int DOT_DOT_DOT

    - #### public static final int DOUBLE_PIPE

    - #### public static final int EOF

    - #### public static final int EQUAL

    - #### public static final int EQUALS

    - #### public static final int EXPRESSION

    - #### public static final int FIND_REGEX

    - #### public static final int GENERAL_END_OF_STATEMENT

    - #### public static final int GSTRING_END

    - #### public static final int GSTRING_EXPRESSION_END

    - #### public static final int GSTRING_EXPRESSION_START

    - #### public static final int GSTRING_START

    - #### public static final int IDENTIFIER

    - #### public static final int INFIX_OPERATOR

    - #### public static final int INTDIV

    - #### public static final int INTDIV_EQUAL

    - #### public static final int INTEGER_NUMBER

    - #### public static final int KEYWORD

    - #### public static final int KEYWORD_ABSTRACT

    - #### public static final int KEYWORD_AS

    - #### public static final int KEYWORD_ASSERT

    - #### public static final int KEYWORD_BOOLEAN

    - #### public static final int KEYWORD_BREAK

    - #### public static final int KEYWORD_BYTE

    - #### public static final int KEYWORD_CASE

    - #### public static final int KEYWORD_CATCH

    - #### public static final int KEYWORD_CHAR

    - #### public static final int KEYWORD_CLASS

    - #### public static final int KEYWORD_CONST

    - #### public static final int KEYWORD_CONTINUE

    - #### public static final int KEYWORD_DEF

    - #### public static final int KEYWORD_DEFAULT

    - #### public static final int KEYWORD_DEFMACRO

    - #### public static final int KEYWORD_DO

    - #### public static final int KEYWORD_DOUBLE

    - #### public static final int KEYWORD_ELSE

    - #### public static final int KEYWORD_EXPRESSION

    - #### public static final int KEYWORD_EXTENDS

    - #### public static final int KEYWORD_FALSE

    - #### public static final int KEYWORD_FINAL

    - #### public static final int KEYWORD_FINALLY

    - #### public static final int KEYWORD_FLOAT

    - #### public static final int KEYWORD_FOR

    - #### public static final int KEYWORD_GOTO

    - #### public static final int KEYWORD_IDENTIFIER

    - #### public static final int KEYWORD_IF

    - #### public static final int KEYWORD_IMPLEMENTS

    - #### public static final int KEYWORD_IMPORT

    - #### public static final int KEYWORD_IN

    - #### public static final int KEYWORD_INSTANCEOF

    - #### public static final int KEYWORD_INT

    - #### public static final int KEYWORD_INTERFACE

    - #### public static final int KEYWORD_LONG

    - #### public static final int KEYWORD_MIXIN

    - #### public static final int KEYWORD_NATIVE

    - #### public static final int KEYWORD_NEW

    - #### public static final int KEYWORD_NULL

    - #### public static final int KEYWORD_PACKAGE

    - #### public static final int KEYWORD_PRIVATE

    - #### public static final int KEYWORD_PROPERTY

    - #### public static final int KEYWORD_PROTECTED

    - #### public static final int KEYWORD_PUBLIC

    - #### public static final int KEYWORD_RETURN

    - #### public static final int KEYWORD_SHORT

    - #### public static final int KEYWORD_STATIC

    - #### public static final int KEYWORD_SUPER

    - #### public static final int KEYWORD_SWITCH

    - #### public static final int KEYWORD_SYNCHRONIZED

    - #### public static final int KEYWORD_THIS

    - #### public static final int KEYWORD_THROW

    - #### public static final int KEYWORD_THROWS

    - #### public static final int KEYWORD_TRANSIENT

    - #### public static final int KEYWORD_TRUE

    - #### public static final int KEYWORD_TRY

    - #### public static final int KEYWORD_VOID

    - #### public static final int KEYWORD_VOLATILE

    - #### public static final int KEYWORD_WHILE

    - #### public static final int LEFT_CURLY_BRACE

    - #### public static final int LEFT_OF_MATCHED_CONTAINER

    - #### public static final int LEFT_PARENTHESIS

    - #### public static final int LEFT_SHIFT

    - #### public static final int LEFT_SHIFT_EQUAL

    - #### public static final int LEFT_SQUARE_BRACKET

    - #### public static final int LITERAL

    - #### public static final int LITERAL_EXPRESSION

    - #### public static final int LOGICAL_AND

    - #### public static final int LOGICAL_AND_EQUAL

    - #### public static final int LOGICAL_OPERATOR

    - #### public static final int LOGICAL_OR

    - #### public static final int LOGICAL_OR_EQUAL

    - #### public static final int LOOP

    - #### public static final int MATCHED_CONTAINER

    - #### public static final int MATCH_REGEX

    - #### public static final int MATH_OPERATOR

    - #### public static final int METHOD_CALL_STARTERS

    - #### public static final int MINUS

    - #### public static final int MINUS_EQUAL

    - #### public static final int MINUS_MINUS

    - #### public static final int MOD

    - #### public static final int MOD_EQUAL

    - #### public static final int MULTIPLY

    - #### public static final int MULTIPLY_EQUAL

    - #### public static final int NAMED_VALUE

    - #### public static final int NAVIGATE

    - #### public static final int NEWLINE

    - #### public static final int NOT

    - #### public static final int NOT_EOF

    - #### public static final int NUMBER

    - #### public static final int OPERATOR_EXPRESSION

    - #### public static final int OPTIONAL_DATATYPE_FOLLOWERS

    - #### public static final int PARAMETER_TERMINATORS

    - #### public static final int PIPE

    - #### public static final int PLUS

    - #### public static final int PLUS_EQUAL

    - #### public static final int PLUS_PLUS

    - #### public static final int POSTFIX_MINUS_MINUS

    - #### public static final int POSTFIX_OPERATOR

    - #### public static final int POSTFIX_PLUS_PLUS

    - #### public static final int POWER

    - #### public static final int POWER_EQUAL

    - #### public static final int PRECLUDES_CAST_OPERATOR

    - #### public static final int PREFIX_MINUS

    - #### public static final int PREFIX_MINUS_MINUS

    - #### public static final int PREFIX_OPERATOR

    - #### public static final int PREFIX_OR_INFIX_OPERATOR

    - #### public static final int PREFIX_PLUS

    - #### public static final int PREFIX_PLUS_PLUS

    - #### public static final int PRIMITIVE_TYPE

    - #### public static final int PURE_PREFIX_OPERATOR

    - #### public static final int QUESTION

    - #### public static final int RANGE_OPERATOR

    - #### public static final int REGEX_COMPARISON_OPERATOR

    - #### public static final int REGEX_PATTERN

    - #### public static final int RESERVED_KEYWORD

    - #### public static final int RIGHT_CURLY_BRACE

    - #### public static final int RIGHT_OF_MATCHED_CONTAINER

    - #### public static final int RIGHT_PARENTHESIS

    - #### public static final int RIGHT_SHIFT

    - #### public static final int RIGHT_SHIFT_EQUAL

    - #### public static final int RIGHT_SHIFT_UNSIGNED

    - #### public static final int RIGHT_SHIFT_UNSIGNED_EQUAL

    - #### public static final int RIGHT_SQUARE_BRACKET

    - #### public static final int SEMICOLON

    - #### public static final int SIGN

    - #### public static final int SIMPLE_EXPRESSION

    - #### public static final int STAR

    - #### public static final int STAR_STAR

    - #### public static final int STRING

    - #### public static final int SWITCH_BLOCK_TERMINATORS

    - #### public static final int SWITCH_ENTRIES

    - #### public static final int SYMBOL

    - #### public static final int SYNTHETIC

    - #### public static final int SYNTH_BLOCK

    - #### public static final int SYNTH_CAST

    - #### public static final int SYNTH_CLASS

    - #### public static final int SYNTH_CLOSURE

    - #### public static final int SYNTH_COMPILATION_UNIT

    - #### public static final int SYNTH_EXPRESSION

    - #### public static final int SYNTH_GSTRING

    - #### public static final int SYNTH_INTERFACE

    - #### public static final int SYNTH_LABEL

    - #### public static final int SYNTH_LIST

    - #### public static final int SYNTH_MAP

    - #### public static final int SYNTH_METHOD

    - #### public static final int SYNTH_METHOD_CALL

    - #### public static final int SYNTH_MIXIN

    - #### public static final int SYNTH_PARAMETER_DECLARATION

    - #### public static final int SYNTH_PROPERTY

    - #### public static final int SYNTH_TERNARY

    - #### public static final int SYNTH_TUPLE

    - #### public static final int SYNTH_VARIABLE_DECLARATION

    - #### public static final int TRUTH_VALUE

    - #### public static final int TYPE_DECLARATION

    - #### public static final int TYPE_LIST_TERMINATORS

    - #### public static final int TYPE_NAME

    - #### public static final int UNKNOWN

    - #### public static final int UNSAFE_OVER_NEWLINES

  - ### Method Detail

    - #### public static boolean canMean(int actual, int preferred)

      Given two types, returns true if the first can be viewed as the second. NOTE that `canMean()` is orthogonal to `ofType()`.

    - #### public static String getDescription(int type)

      Gets the description for the specified type.

    - #### public static Collection<String> getKeywords()

    - #### public static int getPrecedence(int type, boolean throwIfInvalid)

      Returns the precedence of the specified operator. Non-operator's will receive -1 or a GroovyBugError, depending on your preference.

    - #### public static String getText(int type)

      Returns the text for the specified type. Returns "" if the text isn't found.

    - #### public static boolean isKeyword(String text)

    - #### public static int lookup(String text, int filter)

      Returns the type for the specified symbol/keyword text. Returns UNKNOWN if the text isn't found. You can filter finds on a type.

    - #### public static int lookupKeyword(String text)

      Returns the type for the specified keyword text. Returns UNKNOWN if the text isn't found.

    - #### public static int lookupSymbol(String text)

      Returns the type for the specified symbol text. Returns UNKNOWN if the text isn't found.

    - #### public static void makePostfix(CSTNode node, boolean throwIfInvalid)

      Converts a node from a generic type to a specific postfix type. Throws a `GroovyBugError` if the type can't be converted.

    - #### public static void makePrefix(CSTNode node, boolean throwIfInvalid)

      Converts a node from a generic type to a specific prefix type. Throws a `GroovyBugError` if the type can't be converted and requested.

    - #### public static boolean ofType(int specific, int general)

      Given two types, returns true if the second describes the first.