Package com.google.javascript.jscomp

# Class Scope.Var

java.lang.Object
com.google.javascript.jscomp.Scope.Var

All Implemented Interfaces:
  `StaticReference<JSType>`, `StaticSlot<JSType>`

Direct Known Subclasses:
  `Scope.Arguments`

Enclosing class:
  `Scope`

public static class Scope.Var extends Object implements StaticSlot<JSType>, StaticReference<JSType>
Stores info about a variable

## Method Summary

Modifier and Type
Method
Description
`boolean`
`equals(Object other)`
`Scope.Var`
`getDeclaration()`
Gets the declaration of this symbol.
`Node`
`getInitialValue()`
`String`
`getInputName()`
`JSDocInfo`
`getJSDocInfo()`
Gets the JSDocInfo for the variable.
`String`
`getName()`
Gets the name of the variable.
`Node`
`getNameNode()`
Returns the name node that produced this variable.
`Node`
`getNode()`
Gets the node for the name of the variable.
`Node`
`getParentNode()`
Gets the parent of the name node.
`StaticSourceFile`
`getSourceFile()`
The source file where the reference lives.
`Scope.Var`
`getSymbol()`
The variable that this reference points to.
`JSType`
`getType()`
Gets this variable's type.
`int`
`hashCode()`
`boolean`
`isBleedingFunction()`
Whether this is a bleeding function (an anonymous named function that bleeds into the inner scope).
`boolean`
`isConst()`
Returns `true` if the variable is declared as a constant, based on the value reported by `NodeUtil`.
`boolean`
`isDefine()`
Returns `true` if the variable is declared as a define.
`boolean`
`isGlobal()`
Returns whether this is a global variable.
`boolean`
`isLocal()`
Returns whether this is a local variable.
`boolean`
`isNoShadow()`
`boolean`
`isTypeInferred()`
Returns whether this variable's type is inferred.
`String`
`toString()`

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

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

## Method Details

### getName

public String getName()
Gets the name of the variable.

Specified by:
  `getName` in interface `StaticSlot<JSType>`

### getNode

public Node getNode()
Gets the node for the name of the variable.

Specified by:
  `getNode` in interface `StaticReference<JSType>`

### getSourceFile

public StaticSourceFile getSourceFile()
Description copied from interface: `StaticReference`
The source file where the reference lives.

Specified by:
  `getSourceFile` in interface `StaticReference<JSType>`

### getSymbol

public Scope.Var getSymbol()
Description copied from interface: `StaticReference`
The variable that this reference points to.

Specified by:
  `getSymbol` in interface `StaticReference<JSType>`

### getDeclaration

public Scope.Var getDeclaration()
Description copied from interface: `StaticSlot`
Gets the declaration of this symbol. May not exist.

Specified by:
  `getDeclaration` in interface `StaticSlot<JSType>`

### getParentNode

public Node getParentNode()
Gets the parent of the name node.

### isBleedingFunction

public boolean isBleedingFunction()
Whether this is a bleeding function (an anonymous named function that bleeds into the inner scope).

### isGlobal

public boolean isGlobal()
Returns whether this is a global variable.

### isLocal

public boolean isLocal()
Returns whether this is a local variable.

### isConst

public boolean isConst()
Returns `true` if the variable is declared as a constant, based on the value reported by `NodeUtil`.

### isDefine

public boolean isDefine()
Returns `true` if the variable is declared as a define. A variable is a define if it is annotated by `@define`.

### getInitialValue

public Node getInitialValue()

### getType

public JSType getType()
Gets this variable's type. To know whether this type has been inferred, see `#isTypeInferred()`.

Specified by:
  `getType` in interface `StaticSlot<JSType>`
Returns:
  The type or `null` if no type is declared for it.

### getNameNode

public Node getNameNode()
Returns the name node that produced this variable.

### getJSDocInfo

public JSDocInfo getJSDocInfo()
Gets the JSDocInfo for the variable.

Specified by:
  `getJSDocInfo` in interface `StaticSlot<JSType>`

### isTypeInferred

public boolean isTypeInferred()
Returns whether this variable's type is inferred. To get the variable's type, see `getType()`.

Specified by:
  `isTypeInferred` in interface `StaticSlot<JSType>`

### getInputName

public String getInputName()

### isNoShadow

public boolean isNoShadow()

### equals

public boolean equals(Object other)

Overrides:
  `equals` in class `Object`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`

### toString

public String toString()

Overrides:
  `toString` in class `Object`