#include "src/sksl/ir/SkSLVarDeclarations.h"
#include "include/core/SkSpan.h"
#include "include/private/base/SkTo.h"
#include "src/base/SkEnumBitMask.h"
#include "src/sksl/SkSLAnalysis.h"
#include "src/sksl/SkSLBuiltinTypes.h"
#include "src/sksl/SkSLCompiler.h"
#include "src/sksl/SkSLContext.h"
#include "src/sksl/SkSLErrorReporter.h"
#include "src/sksl/SkSLPosition.h"
#include "src/sksl/SkSLProgramKind.h"
#include "src/sksl/SkSLProgramSettings.h"
#include "src/sksl/SkSLString.h"
#include "src/sksl/ir/SkSLLayout.h"
#include "src/sksl/ir/SkSLModifierFlags.h"
#include "src/sksl/ir/SkSLModifiers.h"
#include "src/sksl/ir/SkSLSymbolTable.h"
#include "src/sksl/ir/SkSLType.h"
#include <string_view>
namespace SkSL {
namespace {
static bool check_valid_uniform_type(Position pos,
const Type* t,
const Context& context,
bool topLevel = true) { … }
}
std::string VarDeclaration::description() const { … }
void VarDeclaration::ErrorCheck(const Context& context,
Position pos,
Position modifiersPosition,
const Layout& layout,
ModifierFlags modifierFlags,
const Type* type,
const Type* baseType,
Variable::Storage storage) { … }
bool VarDeclaration::ErrorCheckAndCoerce(const Context& context,
const Variable& var,
const Type* baseType,
std::unique_ptr<Expression>& value) { … }
std::unique_ptr<VarDeclaration> VarDeclaration::Convert(const Context& context,
Position overallPos,
const Modifiers& modifiers,
const Type& type,
Position namePos,
std::string_view name,
VariableStorage storage,
std::unique_ptr<Expression> value) { … }
std::unique_ptr<VarDeclaration> VarDeclaration::Convert(const Context& context,
std::unique_ptr<Variable> var,
std::unique_ptr<Expression> value) { … }
std::unique_ptr<VarDeclaration> VarDeclaration::Make(const Context& context,
Variable* var,
const Type* baseType,
int arraySize,
std::unique_ptr<Expression> value) { … }
}