Interface FlowScope

    • Method Detail

      • withSyntacticScope

        FlowScope withSyntacticScope​(StaticTypedScope scope)
        Returns a flow scope with the given syntactic scope, which may be required to be a specific subclass, such as TypedScope.
      • inferSlotType

        @CheckReturnValue
        FlowScope inferSlotType​(java.lang.String symbol,
                                JSType type)
        Returns a flow scope with the type of the given symbol updated to type.
        Throws:
        java.lang.IllegalArgumentException - If no slot for this symbol exists.
      • inferQualifiedSlot

        @CheckReturnValue
        FlowScope inferQualifiedSlot​(Node node,
                                     java.lang.String symbol,
                                     JSType bottomType,
                                     JSType inferredType,
                                     boolean declare)
        Returns a flow scope with the type of the given symbol updated to inferredType. Updates are not performed in-place.

        When traversing the control flow of a function, simple names are declared at the bottom of the flow lattice. But there are far too many qualified names to be able to do this and be performant. So the bottoms of qualified names are declared lazily.

        Therefore, when inferring a qualified slot, we need both the "bottom" type of the slot when we enter the scope, and the current type being inferred.

      • getDeclarationScope

        StaticTypedScope getDeclarationScope()
        Returns the underlying TypedScope.