#include "include/core/SkTypes.h"
#include "src/core/SkTHash.h"
#include "src/sksl/SkSLAnalysis.h"
#include "src/sksl/SkSLErrorReporter.h"
#include "src/sksl/SkSLOperator.h"
#include "src/sksl/analysis/SkSLProgramVisitor.h"
#include "src/sksl/ir/SkSLBinaryExpression.h"
#include "src/sksl/ir/SkSLExpression.h"
#include "src/sksl/ir/SkSLForStatement.h"
#include "src/sksl/ir/SkSLIRNode.h"
#include "src/sksl/ir/SkSLIndexExpression.h"
#include "src/sksl/ir/SkSLModifierFlags.h"
#include "src/sksl/ir/SkSLStatement.h"
#include "src/sksl/ir/SkSLVarDeclarations.h"
#include "src/sksl/ir/SkSLVariable.h"
#include "src/sksl/ir/SkSLVariableReference.h"
#include <memory>
usingnamespaceskia_private;
namespace SkSL {
class ProgramElement;
namespace {
class ConstantExpressionVisitor : public ProgramVisitor { … };
class ES2IndexingVisitor : public ProgramVisitor { … };
}
bool Analysis::IsConstantExpression(const Expression& expr) { … }
void Analysis::ValidateIndexingForES2(const ProgramElement& pe, ErrorReporter& errors) { … }
}