Package com.google.javascript.jscomp

# Class SymbolTable.SymbolScope

java.lang.Object
com.google.javascript.jscomp.SymbolTable.SymbolScope

All Implemented Interfaces:
  `StaticScope<JSType>`

Enclosing class:
  `SymbolTable`

public static final class SymbolTable.SymbolScope extends Object implements StaticScope<JSType>

## Method Summary

Modifier and Type
Method
Description
`int`
`getIndexOfSymbol(SymbolTable.Symbol sym)`
Gets a unique index for the symbol in this scope.
`SymbolTable.Symbol`
`getOwnSlot(String name)`
Like `getSlot` but does not recurse into parent scopes.
`SymbolTable.SymbolScope`
`getParentScope()`
Returns the scope enclosing this one or null if none.
`SymbolTable.Symbol`
`getQualifiedSlot(String name)`
Get the slot for a fully-qualified name (e.g., "a.b.c") by trying to find property scopes at each part of the path.
`Node`
`getRootNode()`
Returns the root node associated with this scope.
`int`
`getScopeDepth()`
`SymbolTable.Symbol`
`getSlot(String name)`
Returns any defined slot within this scope for this name.
`JSType`
`getTypeOfThis()`
Returns the expected type of `this` in the current scope.
`boolean`
`isDocScope()`
Returns whether this is a doc scope.
`boolean`
`isGlobalScope()`
`boolean`
`isLexicalScope()`
`boolean`
`isPropertyScope()`
`String`
`toString()`

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

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

## Method Details

### getIndexOfSymbol

public int getIndexOfSymbol(SymbolTable.Symbol sym)
Gets a unique index for the symbol in this scope.

### getRootNode

public Node getRootNode()
Description copied from interface: `StaticScope`
Returns the root node associated with this scope. May be null.

Specified by:
  `getRootNode` in interface `StaticScope<JSType>`

### getParentScope

public SymbolTable.SymbolScope getParentScope()
Description copied from interface: `StaticScope`
Returns the scope enclosing this one or null if none.

Specified by:
  `getParentScope` in interface `StaticScope<JSType>`

### getQualifiedSlot

public SymbolTable.Symbol getQualifiedSlot(String name)
Get the slot for a fully-qualified name (e.g., "a.b.c") by trying to find property scopes at each part of the path.

### getSlot

public SymbolTable.Symbol getSlot(String name)
Description copied from interface: `StaticScope`
Returns any defined slot within this scope for this name. This call continues searching through parent scopes if a slot with this name is not found in the current scope.

Specified by:
  `getSlot` in interface `StaticScope<JSType>`
Parameters:
  `name` - The name of the variable slot to look up.
Returns:
  The defined slot for the variable, or `null` if no definition exists.

### getOwnSlot

public SymbolTable.Symbol getOwnSlot(String name)
Description copied from interface: `StaticScope`
Like `getSlot` but does not recurse into parent scopes.

Specified by:
  `getOwnSlot` in interface `StaticScope<JSType>`

### getTypeOfThis

public JSType getTypeOfThis()
Description copied from interface: `StaticScope`
Returns the expected type of `this` in the current scope.

Specified by:
  `getTypeOfThis` in interface `StaticScope<JSType>`

### isGlobalScope

public boolean isGlobalScope()

### isDocScope

public boolean isDocScope()
Returns whether this is a doc scope. A doc scope is a table for symbols that are documented solely within a JSDoc comment.

### isPropertyScope

public boolean isPropertyScope()

### isLexicalScope

public boolean isLexicalScope()

### getScopeDepth

public int getScopeDepth()

### toString

public String toString()

Overrides:
  `toString` in class `Object`