#include "src/sksl/ir/SkSLIndexExpression.h"
#include "include/core/SkTypes.h"
#include "include/private/base/SkTArray.h"
#include "src/sksl/SkSLAnalysis.h"
#include "src/sksl/SkSLBuiltinTypes.h"
#include "src/sksl/SkSLConstantFolder.h"
#include "src/sksl/SkSLContext.h"
#include "src/sksl/SkSLDefines.h"
#include "src/sksl/SkSLErrorReporter.h"
#include "src/sksl/SkSLOperator.h"
#include "src/sksl/ir/SkSLConstructorArray.h"
#include "src/sksl/ir/SkSLConstructorCompound.h"
#include "src/sksl/ir/SkSLLiteral.h"
#include "src/sksl/ir/SkSLSwizzle.h"
#include "src/sksl/ir/SkSLSymbolTable.h"
#include "src/sksl/ir/SkSLType.h"
#include "src/sksl/ir/SkSLTypeReference.h"
#include <cstdint>
#include <optional>
namespace SkSL {
static bool index_out_of_range(const Context& context, Position pos, SKSL_INT index,
const Expression& base) { … }
const Type& IndexExpression::IndexType(const Context& context, const Type& type) { … }
std::unique_ptr<Expression> IndexExpression::Convert(const Context& context,
Position pos,
std::unique_ptr<Expression> base,
std::unique_ptr<Expression> index) { … }
std::unique_ptr<Expression> IndexExpression::Make(const Context& context,
Position pos,
std::unique_ptr<Expression> base,
std::unique_ptr<Expression> index) { … }
std::string IndexExpression::description(OperatorPrecedence) const { … }
}