#include "src/sksl/ir/SkSLForStatement.h"
#include "include/core/SkTypes.h"
#include "src/sksl/SkSLAnalysis.h"
#include "src/sksl/SkSLBuiltinTypes.h"
#include "src/sksl/SkSLContext.h"
#include "src/sksl/SkSLDefines.h"
#include "src/sksl/SkSLErrorReporter.h"
#include "src/sksl/SkSLProgramSettings.h"
#include "src/sksl/analysis/SkSLProgramVisitor.h"
#include "src/sksl/ir/SkSLBlock.h"
#include "src/sksl/ir/SkSLExpressionStatement.h"
#include "src/sksl/ir/SkSLNop.h"
#include "src/sksl/ir/SkSLType.h"
#include "src/sksl/ir/SkSLVarDeclarations.h"
#include "src/sksl/ir/SkSLVariable.h"
namespace SkSL {
static bool is_vardecl_block_initializer(const Statement* stmt) { … }
static bool is_simple_initializer(const Statement* stmt) { … }
std::string ForStatement::description() const { … }
static void hoist_vardecl_symbols_into_outer_scope(const Context& context,
const Block& initBlock,
SymbolTable* innerSymbols,
SymbolTable* hoistedSymbols) { … }
std::unique_ptr<Statement> ForStatement::Convert(const Context& context,
Position pos,
ForLoopPositions positions,
std::unique_ptr<Statement> initializer,
std::unique_ptr<Expression> test,
std::unique_ptr<Expression> next,
std::unique_ptr<Statement> statement,
std::unique_ptr<SymbolTable> symbolTable) { … }
std::unique_ptr<Statement> ForStatement::ConvertWhile(const Context& context,
Position pos,
std::unique_ptr<Expression> test,
std::unique_ptr<Statement> statement) { … }
std::unique_ptr<Statement> ForStatement::Make(const Context& context,
Position pos,
ForLoopPositions positions,
std::unique_ptr<Statement> initializer,
std::unique_ptr<Expression> test,
std::unique_ptr<Expression> next,
std::unique_ptr<Statement> statement,
std::unique_ptr<LoopUnrollInfo> unrollInfo,
std::unique_ptr<SymbolTable> symbolTable) { … }
}