org.eclipse.wst.jsdt.core.infer

## Class InferredType

- java.lang.Object
- - org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode
  - - org.eclipse.wst.jsdt.core.infer.InferredType

All Implemented Interfaces:
  IASTNode, org.eclipse.wst.jsdt.internal.compiler.lookup.TypeConstants, org.eclipse.wst.jsdt.internal.compiler.lookup.TypeIds

    public class InferredType
    extends org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode

The representation of an inferred type. Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

### Field Summary

Fields
`static char[]` `ARRAY_NAME`
`InferredAttribute[]` `attributes`
`org.eclipse.wst.jsdt.internal.compiler.util.HashtableOfObject` `attributesHash`
`org.eclipse.wst.jsdt.internal.compiler.lookup.SourceTypeBinding` `binding`
`static char[]` `FUNCTION_NAME`
`static char[]` `GLOBAL_NAME` Deprecated. - no longer used
`java.lang.String` `inferenceProviderID`
`java.lang.String` `inferenceStyle`
`boolean` `isAnonymous`
`boolean` `isArray`
`boolean` `isDefinition` Deprecated. this will not remain public forever
`boolean` `isObjectLiteral`
`java.util.ArrayList` `methods`
`java.util.ArrayList` `mixins`
`int` `modifiers`
`int` `numberAttributes`
`static char[]` `OBJECT_LITERAL_NAME` Deprecated. this is not used internally, this will be removed
`static char[]` `OBJECT_NAME`
`InferredType` `referenceClass`
`org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope` `scope`
`InferredType` `superClass` The parent type of this type, or `null` if this type does not have a parent type NOTE: This field should not be accessed directly, use the appropriate getter and setter.
`java.lang.Object` `userData` Deprecated. this is not used internally, this will be removed
`static char[]` `VOID_NAME`

### Fields inherited from class org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode

`Bit1, Bit10, Bit11, Bit12, Bit13, Bit14, Bit15, Bit16, Bit17, Bit18, Bit19, Bit2, Bit20, Bit21, Bit22, Bit23, Bit24, Bit25, Bit26, Bit27, Bit28, Bit29, Bit3, Bit30, Bit31, Bit32, Bit32L, Bit33L, Bit34L, Bit35L, Bit36L, Bit37L, Bit38L, Bit39L, Bit4, Bit40L, Bit41L, Bit42L, Bit43L, Bit44L, Bit45L, Bit46L, Bit47L, Bit48L, Bit49L, Bit5, Bit50L, Bit51L, Bit52L, Bit53L, Bit54L, Bit55L, Bit56L, Bit57L, Bit58L, Bit59L, Bit6, Bit60L, Bit61L, Bit62L, Bit63L, Bit64L, Bit7, Bit8, Bit9, bits, BlockExit, ContainsAssertion, DepthMASK, DepthSHIFT, DidResolve, DiscardEnclosingInstance, DocumentedFallthrough, Empty, ErrorInSignature, FirstAssignmentToLocal, HasAbstractMethods, HasAllMethodBodies, HasBeenGenerated, HasBeenResolved, HasLocalType, IgnoreNoEffectAssignCheck, IgnoreRawTypeCheck, InsideJavadoc, INVOCATION_ARGUMENT_OK, INVOCATION_ARGUMENT_UNCHECKED, IsAnonymousType, IsAnySubRoutineEscaping, IsCompoundAssigned, IsDefaultConstructor, IsElseIfStatement, IsFileImport, IsImplicitThis, IsImplicitUnit, IsInferredJsDocType, IsInferredType, IsLocalDeclarationReachable, IsLocalType, IsMemberType, IsNonNull, IsReachable, IsReturnedValue, IsSecondaryType, IsStrictlyAssigned, IsSubRoutineEscaping, IsSuperType, IsTryBlockExiting, IsUsefulEmptyStatement, IsVarArgs, LabelUsed, NeededScope, NeedFreeReturn, OnDemand, OperatorMASK, OperatorSHIFT, OverridingMethodWithSupercall, ParenthesizedMASK, ParenthesizedSHIFT, RestrictiveFlagMASK, ReturnTypeIDMASK, sourceEnd, sourceStart, SuperAccess, ThenExit, UndocumentedEmptyBlock, Used`

### Fields inherited from interface org.eclipse.wst.jsdt.internal.compiler.lookup.TypeConstants

`ANONYM_PREFIX, ANONYM_SUFFIX, ANY, ARRAY, BOOLEAN, BOOLEAN_OBJECT, CHAR, CharArray_JAVA_LANG_OBJECT, CLINIT, CONSTRAINT_EQUAL, CONSTRAINT_EXTENDS, CONSTRAINT_SUPER, DOUBLE, ERROR, FLOAT, FUNCTION, GETCLASS, INIT, INT, JAVA, JAVA_LANG, JAVA_LANG_ASSERTIONERROR, JAVA_LANG_BOOLEAN, JAVA_LANG_CHARACTER, JAVA_LANG_CLASS, JAVA_LANG_DOUBLE, JAVA_LANG_ERROR, JAVA_LANG_EXCEPTION, JAVA_LANG_FLOAT, JAVA_LANG_ILLEGALARGUMENTEXCEPTION, JAVA_LANG_INTEGER, JAVA_LANG_ITERABLE, JAVA_LANG_LONG, JAVA_LANG_OBJECT, JAVA_LANG_RUNTIMEEXCEPTION, JAVA_LANG_SHORT, JAVA_LANG_STRING, JAVA_LANG_SYSTEM, JAVA_LANG_THROWABLE, JAVA_LANG_VOID, LANG, LENGTH, LONG, MISMATCH, NULL, NUMBER, OBJECT, OK, PACKAGE_INFO_NAME, PROTOTYPE, READOBJECT, READRESOLVE, REFLECT, REGEXP, SHORT, SYSTEMJS, TYPE, UNCHECKED, UNDEFINED, UPPER_CLASS, UPPER_CONSTRUCTOR, UPPER_FIELD, UPPER_LOCAL_VARIABLE, UPPER_METHOD, UPPER_PACKAGE, UPPER_PARAMETER, UPPER_RUNTIME, UPPER_SOURCE, UTIL, VALUE, VALUEOF, VALUES, VOID, WRITEOBJECT, WRITEREPLACE`

### Fields inherited from interface org.eclipse.wst.jsdt.internal.compiler.lookup.TypeIds

`Boolean2Boolean, Boolean2Int, Boolean2String, BOXING, Char2Char, Char2Double, Char2Float, Char2Int, Char2Long, Char2Short, Char2String, COMPILE_TYPE_MASK, Double2Char, Double2Double, Double2Float, Double2Int, Double2Long, Double2Short, Double2String, Float2Char, Float2Double, Float2Float, Float2Int, Float2Long, Float2Short, Float2String, IMPLICIT_CONVERSION_MASK, Int2Char, Int2Double, Int2Float, Int2Int, Int2Long, Int2Short, Int2String, Long2Char, Long2Double, Long2Float, Long2Int, Long2Long, Long2Short, Long2String, NoId, Null2String, Object2Object, Object2String, Short2Char, Short2Double, Short2Float, Short2Int, Short2Long, Short2Short, Short2String, String2String, T_any, T_boolean, T_char, T_double, T_float, T_function, T_int, T_JavaLangAssertionError, T_JavaLangBoolean, T_JavaLangCharacter, T_JavaLangClass, T_JavaLangClassNotFoundException, T_JavaLangDeprecated, T_JavaLangDouble, T_JavaLangError, T_JavaLangException, T_JavaLangFloat, T_JavaLangIllegalArgumentException, T_JavaLangInteger, T_JavaLangIterable, T_JavaLangLong, T_JavaLangNoClassDefError, T_JavaLangObject, T_JavaLangOverride, T_JavaLangRuntimeException, T_JavaLangShort, T_JavaLangString, T_JavaLangStringBuffer, T_JavaLangStringBuilder, T_JavaLangSuppressWarnings, T_JavaLangSystem, T_JavaLangThrowable, T_JavaLangVoid, T_JavaUtilIterator, T_last_basic, T_long, T_null, T_short, T_undefined, T_void, UNBOXING`

### Fields inherited from interface org.eclipse.wst.jsdt.core.ast.IASTNode

`ABSTRACT_FUNCTION_DECLARATION, ABSTRACT_VARIABLE_DECLARATION, ALLOCATION_EXPRESSION, AND_AND_EXPRESSION, ARGUMENT, ARRAY_ALLOCATION_EXPRESSION, ARRAY_INITIALIZER, ARRAY_QUALIFIED_TYPE_REFERENCE, ARRAY_REFERENCE, ARRAY_TYPE_REFERENCE, ASSIGNMENT, AST_NODE, BINARY_EXPRESSION, BLOCK, BRANCH_STATEMENT, BREAK_STATEMENT, CASE_STATEMENT, CHAR_LITERAL, CL_INIT, CLASS_LITERAL_ACCESS, COMBINED_BINARY_EXPRESSION, COMPOUND_ASSIGNMENT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_DECLARATION, CONTINUE_STATEMENT, DO_STATEMENT, DOUBLE_LITERAL, EMPTY_EXPRESSION, EMPTY_STATEMENT, EQUAL_EXPRESSION, EXPLICIT_CONSTRUCTOR_CALL, EXPRESSION, EXTENDED_STRING_LITERAL, FALSE_LITERAL, FIELD_DECLARATION, FIELD_REFERENCE, FLOAT_LITERAL, FOR_EACH_STATEMENT, FOR_IN_STATEMENT, FOR_STATEMENT, FUNCTION_CALL, FUNCTION_DECLARATION, FUNCTION_EXPRESSION, IF_STATEMENT, IMPORT_REFERENCE, INITIALIZER, INSTANCEOF_EXPRESSION, INT_LITERAL, INT_LITERAL_MIN_VALUE, JSDOC, JSDOC_ALLOCATION_EXPRESSION, JSDOC_ARGUMENTEXPRESSION, JSDOC_ARRAY_QUALIFIED_TYPE_REFERENCE, JSDOC_ARRAY_SINGLE_TYPE_REFERENCE, JSDOC_FIELD_REFERENCE, JSDOC_IMPLICIT_TYPE_REFERENCE, JSDOC_MESSAGE_SEND, JSDOC_QUALIFIED_TYPE_REFERENCE, JSDOC_RETURN_STATEMENT, JSDOC_SINGLE_NAME_REFERENCE, JSDOC_SINGLE_TYPE_REFERENCE, LABELED_STATEMENT, LIST_EXPRESSION, LITERAL, LOCAL_DECLARATION, LONG_LITERAL, LONG_LITERAL_MIN_VALUE, MAGIC_LITERAL, NAME_REFERENCE, NULL_LITERAL, NUMBER_LITERAL, OBJECT_GETTER_SETTER_FIELD, OBJECT_LITERAL, OBJECT_LITERAL_FIELD, OPERATOR_EXPRESSION, OR_OR_EXPRESSION, PARAMETERIZED_QUALIFIED_TYPE_REFERENCE, PARAMETERIZED_SINGLE_TYPE_REFERENCE, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PROGRAM_ELEMENT, QUALIFIED_ALLOCATION_EXPRESSION, QUALIFIED_NAME_REFERENCE, QUALIFIED_SUPER_REFERENCE, QUALIFIED_THIS_REFERENCE, QUALIFIED_TYPE_REFERENCE, REFERENCE, REG_EX_LITERAL, RETURN_STATEMENT, SCRIPT_FILE_DECLARATION, SINGLE_NAME_REFERENCE, SINGLE_TYPE_REFERENCE, STATEMENT, STRING_LITERAL, STRING_LITERAL_CONCATENATION, SUB_ROUTINE_STATEMENT, SUPER_REFERENCE, SWITCH_STATEMENT, THIS_REFERENCE, THROW_STATEMENT, TRUE_LITERAL, TRY_STATEMENT, TYPE_DECLARATION, TYPE_PARAMETER, TYPE_REFERENCE, UNARY_EXPRESSION, UNDEFINED_LITERAL, WHILE_STATEMENT, WITH_STATEMENT`

### Constructor Summary

Constructors
Constructor and Description
`InferredType(char[] className)` Create a new inferred type

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`InferredAttribute` `addAttribute(char[] name, IASTNode definer, int nameStart)` Add a new inferred attribute to the inferred type
`InferredAttribute` `addAttribute(InferredAttribute newAttribute)` Add an InferredAttribute to this inferred type.
`InferredMethod` `addConstructorMethod(char[] methodName, IFunctionDeclaration functionDeclaration, int nameStart)` Add a new constructor method to the inferred type
`InferredMethod` `addMethod(char[] methodName, IFunctionDeclaration functionDeclaration, int nameStart)` Add a new method to the inferred type
`void` `addMixin(char[] mixinTypeName)` Adds the name of a type to mix into this type during the resolving step.
`void` `addSynonym(InferredType type)`
`boolean` `containsMethod(IAbstractFunctionDeclaration inMethod)`
`IAbstractFunctionDeclaration` `declarationOf(org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding methodBinding)`
`void` `dumpReference(java.lang.StringBuffer sb)`
`InferredAttribute` `findAttribute(char[] name)` Find the inferred attribute with the given name
`InferredMethod` `findMethod(char[] methodName, IFunctionDeclaration methodDeclaration)` Find an inferred method
`IFunctionDeclaration` `getCorrespondingFunction()`
`int` `getModifiers()`
`char[]` `getName()` Gets the name of the inferred type
`int` `getNameStart()`
`char[]` `getSuperClassName()` Get the superclass name of the inferred type
`InferredType` `getSuperType()`
`InferredType[]` `getSynonyms()`
`boolean` `isArray()`
`boolean` `isDefinition()`
`boolean` `isEmptyGlobal()` Deprecated. - no longer used
`boolean` `isFunction()`
`boolean` `isGlobal()`
`boolean` `isIndexed()` Determines if this type should be indexed or not.
`boolean` `isInferred()`
`boolean` `isNamed()`
`boolean` `isVoid()`
`void` `mixin(InferredType mixin)` Mixes an `InferredType` into this `InferredType` right now.
`void` `mixin(InferredType mixin, boolean isDeepCopy)` Mixes an `InferredType` into this `InferredType`.
`java.lang.StringBuffer` `print(int indent, java.lang.StringBuffer output)`
`InferredAttribute` `replaceAttribute(char[] name, IASTNode definer, int nameStart)` Adds a new inferred attribute to the inferred type if it doesn't already exist otherwise it replaces the existing one with the new one.
`org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding` `resolveSuperType(org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope classScope)`
`org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding` `resolveType(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope scope, org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode node)`
`void` `setCorrespondingFunction(IFunctionDeclaration coorespondingFunction)`
`void` `setIsDefinition(boolean isDefinition)`
`void` `setIsGlobal(boolean isGlobal)` EX: The anonymous type for a global variable would be globally visible, the anonymous type for a local would not.
`void` `setModifiers(int modifiers)`
`void` `setNameStart(int start)` Set the charactor position (in the source) of the type name
`void` `setSuperType(InferredType superType)` Sets the super type of this type unless the given super type is itself then this is a no op
`void` `updatePositions(int start, int end)`

### Methods inherited from class org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode

`checkInvocationArguments, concreteStatement, getASTType, isFieldUseDeprecated, isImplicitThis, isMethodUseDeprecated, isSuper, isThis, isTypeUseDeprecated, printIndent, printModifiers, setSourceEnd, sourceEnd, sourceStart, toString, traverse, traverse`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### methods

    public java.util.ArrayList methods

#### attributes

    public InferredAttribute[] attributes

#### numberAttributes

    public int numberAttributes

#### attributesHash

    public org.eclipse.wst.jsdt.internal.compiler.util.HashtableOfObject attributesHash

#### superClass

    public InferredType superClass

The parent type of this type, or `null` if this type does not have a parent type

NOTE: This field should not be accessed directly, use the appropriate getter and setter.

See Also:
  `#setSuperType(InferredType)}`, `#getSuperType()}`

#### referenceClass

    public InferredType referenceClass

#### binding

    public org.eclipse.wst.jsdt.internal.compiler.lookup.SourceTypeBinding binding

#### isDefinition

    public boolean isDefinition

Deprecated. this will not remain public forever

See Also:
  `isDefinition()`, `setIsDefinition(boolean)`

#### scope

    public org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope scope

#### isArray

    public boolean isArray

#### isAnonymous

    public boolean isAnonymous

#### isObjectLiteral

    public boolean isObjectLiteral

#### inferenceProviderID

    public java.lang.String inferenceProviderID

#### inferenceStyle

    public java.lang.String inferenceStyle

#### mixins

    public java.util.ArrayList mixins

#### modifiers

    public int modifiers

Since:
  1.1

#### OBJECT_NAME

    public static final char[] OBJECT_NAME

#### OBJECT_LITERAL_NAME

    public static final char[] OBJECT_LITERAL_NAME

Deprecated. this is not used internally, this will be removed

#### ARRAY_NAME

    public static final char[] ARRAY_NAME

#### FUNCTION_NAME

    public static final char[] FUNCTION_NAME

#### VOID_NAME

    public static final char[] VOID_NAME

#### GLOBAL_NAME

    public static final char[] GLOBAL_NAME

Deprecated. - no longer used

#### userData

    public java.lang.Object userData

Deprecated. this is not used internally, this will be removed

### Constructor Detail

#### InferredType

    public InferredType(char[] className)

Create a new inferred type

Parameters:
  `className` - inferred type name

### Method Detail

#### getModifiers

    public int getModifiers()

Returns:
Since:
  1.1

#### getName

    public char[] getName()

Gets the name of the inferred type

Returns:
  the inferred type name

#### getSuperClassName

    public char[] getSuperClassName()

Get the superclass name of the inferred type

Returns:
  superclass name

#### addAttribute

    public InferredAttribute addAttribute(char[] name,
                                          IASTNode definer,
                                          int nameStart)

Add a new inferred attribute to the inferred type

Parameters:
  `name` - the attribute name
  `definer` - the ASTNode which this attribute is inferred from
  `nameStart` - character position (in the source) of the attribute name
Returns:
  a new InferredAttribute

#### replaceAttribute

    public InferredAttribute replaceAttribute(char[] name,
                                              IASTNode definer,
                                              int nameStart)

Adds a new inferred attribute to the inferred type if it doesn't already exist otherwise it replaces the existing one with the new one.

Parameters:
  `name` - the attribute name
  `definer` - the ASTNode which this attribute is inferred from
  `nameStart` - character position (in the source) of the attribute name
Returns:
  a inferredAttribute

#### addAttribute

    public InferredAttribute addAttribute(InferredAttribute newAttribute)

Add an InferredAttribute to this inferred type.

Parameters:
  `newAttribute` - the attribute to add.
Returns:

#### findAttribute

    public InferredAttribute findAttribute(char[] name)

Find the inferred attribute with the given name

Parameters:
  `name` - name of the attribute to find
Returns:
  the found InferredAttribute, or null if not found

#### addConstructorMethod

    public InferredMethod addConstructorMethod(char[] methodName,
                                               IFunctionDeclaration functionDeclaration,
                                               int nameStart)

Add a new constructor method to the inferred type

Parameters:
  `methodName` - name of the method to add
  `functionDeclaration` - the AST Node containing the method bode
  `nameStart` - character position (in the source) of the method name
Returns:
  a new inferred method

#### addMethod

    public InferredMethod addMethod(char[] methodName,
                                    IFunctionDeclaration functionDeclaration,
                                    int nameStart)

Add a new method to the inferred type

Parameters:
  `methodName` - name of the method to add
  `functionDeclaration` - the AST Node containing the method bode
  `nameStart` - character position (in the source) of the method name
Returns:
  a new inferred method

#### findMethod

    public InferredMethod findMethod(char[] methodName,
                                     IFunctionDeclaration methodDeclaration)

Find an inferred method

Parameters:
  `methodName` - name of the method to find
  `methodDeclaration` - not used
Returns:
  the found method, or null

#### resolveType

    public org.eclipse.wst.jsdt.internal.compiler.lookup.TypeBinding resolveType(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope scope,
                                                                                 org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode node)

#### dumpReference

    public void dumpReference(java.lang.StringBuffer sb)

#### containsMethod

    public boolean containsMethod(IAbstractFunctionDeclaration inMethod)

#### resolveSuperType

    public org.eclipse.wst.jsdt.internal.compiler.lookup.ReferenceBinding resolveSuperType(org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope classScope)

#### isArray

    public boolean isArray()

#### isFunction

    public boolean isFunction()

#### isVoid

    public boolean isVoid()

#### print

    public java.lang.StringBuffer print(int indent,
                                        java.lang.StringBuffer output)

Specified by:
  `print` in class `org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode`

#### isInferred

    public boolean isInferred()

Overrides:
  `isInferred` in class `org.eclipse.wst.jsdt.internal.compiler.ast.ASTNode`

#### updatePositions

    public void updatePositions(int start,
                                int end)

#### declarationOf

    public IAbstractFunctionDeclaration declarationOf(org.eclipse.wst.jsdt.internal.compiler.lookup.MethodBinding methodBinding)

#### isNamed

    public boolean isNamed()

Returns:
  `true` if this type is anonymous or the the type name starts with the anonymous prefix, `false` otherwise

#### setModifiers

    public void setModifiers(int modifiers)

Parameters:
  `modifiers` - the modifiers to set
Since:
  1.1

#### setNameStart

    public void setNameStart(int start)

Set the charactor position (in the source) of the type name

Parameters:
  `start` - type name position

#### getNameStart

    public int getNameStart()

#### isEmptyGlobal

    public boolean isEmptyGlobal()

Deprecated. - no longer used

#### addMixin

    public void addMixin(char[] mixinTypeName)

Adds the name of a type to mix into this type during the resolving step.

Use `mixin(InferredType)` if the type to mixin is an anonymous type since anonymous types are only available at the inference step and will not be available at the resolve step when mixins added with this method are mixed in.

NOTE: Do not confuse this with `dojo.mixin()`, this operation is actually more akin to `dojo.extend`

Parameters:
  `mixinTypeName` - the name of the type to mix into this type

#### mixin

    public void mixin(InferredType mixin)

Mixes an `InferredType` into this `InferredType` right now. Thus if the type being mixed in changes at all, fields or methods added/removed, at a later point those changes will not get reflected in this inferred type. Thus this method should only be used when it is certain the mixin type will not change again, such as during the resolving step or an `ObjectLiteral` during the inference step.

NOTE: Do not confuse this with `dojo.mixin()`, this operation is actually more akin to `dojo.extend`

Parameters:
  `mixin` -
Since:
  1.1

#### mixin

    public void mixin(InferredType mixin,
                      boolean isDeepCopy)

Mixes an `InferredType` into this `InferredType`. By passing true for the second argument, objects will be recursively mixed. This means that if a property of the first object is itself an object, a mix will be performed if a property with the same key exists in the second object. Otherwise it would be completely overriden by the property of the second object.

Parameters:
  `mixin` -

#### getSuperType

    public InferredType getSuperType()

Returns:
  super `InferredType` of this `InferredType`, or `null` if none is set
Since:
  1.1

#### setSuperType

    public void setSuperType(InferredType superType)

Sets the super type of this type unless the given super type is itself then this is a no op

Parameters:
  `superType` - `InferredType` to set as the super type of this type, can not be the same as this type
Since:
  1.1

#### isIndexed

    public boolean isIndexed()

Determines if this type should be indexed or not. A type should be indexed if it is named or has specifically been set to be a global type.

Returns:
  `true` if this type should be indexed, `false` otherwise
Since:
  1.1
See Also:
  `isNamed()`, `isGlobal()`

#### setIsGlobal

    public void setIsGlobal(boolean isGlobal)

EX: The anonymous type for a global variable would be globally visible, the anonymous type for a local would not.

Parameters:
  `isGlobal` - `true` if this type is a globally visible type, `false` otherwise.
Since:
  1.1

#### isGlobal

    public boolean isGlobal()

Returns:
  `true` if this type is a globally visible type, `false` otherwise.
Since:
  1.1

#### isDefinition

    public boolean isDefinition()

Returns:
  `true` if this type is a definition, `false` otherwise

#### setIsDefinition

    public void setIsDefinition(boolean isDefinition)

Parameters:
  `isDefinition` - `true` if this type is a definition, `false` otherwise

#### getSynonyms

    public InferredType[] getSynonyms()

Returns:
  the types for which this type is synonymous, or null if none have been set
Since:
  1.2

#### addSynonym

    public void addSynonym(InferredType type)

Parameters:
  `type` - - adds a type for which this type is synonymous
Since:
  1.2

#### getCorrespondingFunction

    public IFunctionDeclaration getCorrespondingFunction()

Returns:
  the correspondingFunction

#### setCorrespondingFunction

    public void setCorrespondingFunction(IFunctionDeclaration coorespondingFunction)

Parameters:
  `coorespondingFunction` - the coorespondingFunction to set