Package com.google.javascript.jscomp.type

# Class ClosureReverseAbstractInterpreter

java.lang.Object
com.google.javascript.jscomp.type.ChainableReverseAbstractInterpreter
com.google.javascript.jscomp.type.ClosureReverseAbstractInterpreter

All Implemented Interfaces:
  `ReverseAbstractInterpreter`

public class ClosureReverseAbstractInterpreter extends ChainableReverseAbstractInterpreter
A reverse abstract interpreter (RAI) for specific closure patterns such as `goog.isDef`.

## Field Summary

### Fields inherited from class com.google.javascript.jscomp.type.ChainableReverseAbstractInterpreter

`convention`

## Constructor Summary

Constructors
Constructor
Description
`ClosureReverseAbstractInterpreter(CodingConvention convention, JSTypeRegistry typeRegistry)`
Creates a `ClosureReverseAbstractInterpreter`.

## Method Summary

Modifier and Type
Method
Description
`FlowScope`
`getPreciserScopeKnowingConditionOutcome(Node condition, FlowScope blindScope, boolean outcome)`
Calculates a precise version of the scope knowing the outcome of the condition.

### Methods inherited from class com.google.javascript.jscomp.type.ChainableReverseAbstractInterpreter

`append, declareNameInScope, firstPreciserScopeKnowingConditionOutcome, getFirst, getRestrictedWithoutNull, getRestrictedWithoutUndefined, getTypeIfRefinable, nextPreciserScopeKnowingConditionOutcome`

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

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

## Constructor Details

### ClosureReverseAbstractInterpreter

public ClosureReverseAbstractInterpreter(CodingConvention convention, JSTypeRegistry typeRegistry)
Creates a `ClosureReverseAbstractInterpreter`.

## Method Details

### getPreciserScopeKnowingConditionOutcome

public FlowScope getPreciserScopeKnowingConditionOutcome(Node condition, FlowScope blindScope, boolean outcome)
Description copied from interface: `ReverseAbstractInterpreter`
Calculates a precise version of the scope knowing the outcome of the condition.

Parameters:
  `condition` - the condition's expression
  `blindScope` - the scope without knowledge about the outcome of the condition
  `outcome` - the outcome of the condition