All Implemented Interfaces:
Context

public class ForStatementContext extends StatementContext<ForStmt>
  • Constructor Details

    • ForStatementContext

      public ForStatementContext(ForStmt wrappedNode, TypeSolver typeSolver)
  • Method Details

    • typePatternExprsExposedToChild

      public List<TypePatternExpr> typePatternExprsExposedToChild(Node child)
      The following rules apply to a basic for statement: - A pattern variable introduced by the condition expression when true is definitely matched at both the incrementation part and the contained statement. https://docs.oracle.com/javase/specs/jls/se22/html/jls-6.html#jls-6.3.2.5
    • getIntroducedTypePatterns

      public List<TypePatternExpr> getIntroducedTypePatterns()
      The following rules apply to a basic for statement: - A pattern variable is introduced by a basic for statement iff (i) it is introduced by the condition expression when false and (ii) the contained statement, S, does not contain a reachable break for which the basic for statement is the break target. https://docs.oracle.com/javase/specs/jls/se21/html/jls-6.html#jls-6.3.2.5
      Overrides:
      getIntroducedTypePatterns in class StatementContext<ForStmt>
    • solveSymbol

      public SymbolReference<? extends ResolvedValueDeclaration> solveSymbol(String name)
      Description copied from interface: Context
      Used where a symbol is being used (e.g. solving x when used as an argument doubleThis(x), or calculation return x * 2;).
      Specified by:
      solveSymbol in interface Context
      Overrides:
      solveSymbol in class StatementContext<ForStmt>
      Parameters:
      name - the variable / reference / identifier used.
      Returns:
      // FIXME: Better documentation on how this is different to solveSymbolAsValue()
    • solveMethod

      public SymbolReference<ResolvedMethodDeclaration> solveMethod(String name, List<ResolvedType> argumentsTypes, boolean staticOnly)
      Description copied from interface: Context
      We find the method declaration which is the best match for the given name and list of typeParametersValues.
      Specified by:
      solveMethod in interface Context
      Overrides:
      solveMethod in class StatementContext<ForStmt>
    • localVariablesExposedToChild

      public List<VariableDeclarator> localVariablesExposedToChild(Node child)
      Description copied from interface: Context
      The local variables that are declared in this immediate context and made visible to a given child. This list could include values which are shadowed.