32 "' is not supported");
40 String::printf(
"construction of array type '%s' with atomic member is not allowed",
50 if (
args.size() == 1) {
69 for (std::unique_ptr<Expression>& argument :
args) {
87 SkASSERT(std::all_of(
args.begin(),
args.end(), [&](
const std::unique_ptr<Expression>& arg) {
88 return type.componentType().matches(arg->type());
91 return std::make_unique<ConstructorArray>(
pos,
type, std::move(
args));
#define SkASSERTF(cond, fmt,...)
static std::unique_ptr< Expression > Make(const Context &context, Position pos, const Type &type, std::unique_ptr< Expression > arg)
static std::unique_ptr< Expression > Make(const Context &context, Position pos, const Type &type, ExpressionArray args)
static std::unique_ptr< Expression > Convert(const Context &context, Position pos, const Type &type, ExpressionArray args)
void error(Position position, std::string_view msg)
const Type & type() const
virtual bool isArray() const
bool isAllowedInES2(const Context &context) const
std::unique_ptr< Expression > coerceExpression(std::unique_ptr< Expression > expr, const Context &context) const
virtual const Type & componentType() const
virtual int columns() const
std::string description() const override
virtual bool isOrContainsAtomic() const
bool canCoerceTo(const Type &other, bool allowNarrowing) const
std::string displayName() const
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
std::string printf(const char *fmt,...) SK_PRINTF_LIKE(1
bool strictES2Mode() const