Class ChainableReverseAbstractInterpreter

    • Method Detail

      • append

        public ChainableReverseAbstractInterpreter append​(ChainableReverseAbstractInterpreter lastLink)
        Appends a link to this, returning the updated last link.

        The pattern new X().append(new Y())...append(new Z()) forms a chain starting with X, then Y, then ... Z.

        Parameters:
        lastLink - a chainable interpreter, with no next link
        Returns:
        the updated last link
      • firstPreciserScopeKnowingConditionOutcome

        protected FlowScope firstPreciserScopeKnowingConditionOutcome​(Node condition,
                                                                      FlowScope blindScope,
                                                                      Outcome outcome)
        Calculates the preciser scope starting with the first link.
      • nextPreciserScopeKnowingConditionOutcome

        protected FlowScope nextPreciserScopeKnowingConditionOutcome​(Node condition,
                                                                     FlowScope blindScope,
                                                                     Outcome outcome)
        Delegates the calculation of the preciser scope to the next link. If there is no next link, returns the blind scope.
      • getTypeIfRefinable

        protected JSType getTypeIfRefinable​(Node node,
                                            FlowScope scope)
        Returns the type of a node in the given scope if the node corresponds to a name whose type is capable of being refined.
        Returns:
        The current type of the node if it can be refined, null otherwise.