Lines Matching defs:context
108 static std::unique_ptr<Expression> optimize_constructor_swizzle(const Context& context,
222 newArgs.push_back(Swizzle::Make(context, std::move(newArg),
228 auto ctor = Constructor::Convert(context,
230 componentType.toCompound(context, swizzleSize, /*rows=*/1),
236 std::unique_ptr<Expression> Swizzle::Convert(const Context& context,
261 context.fErrors->error(base->fLine,
266 return Convert(context, std::move(base), std::move(components));
274 std::unique_ptr<Expression> Swizzle::Convert(const Context& context,
278 context.fErrors->error(base->fLine,
287 context.fErrors->error(
293 context.fErrors->error(line,
345 context.fErrors->error(line,
353 context.fErrors->error(line, "swizzle must refer to base expression");
358 base = baseType.scalarTypeForLiteral().coerceExpression(std::move(base), context);
368 std::unique_ptr<Expression> expr = Swizzle::Make(context, std::move(base), maskComponents);
403 context, line, *scalarType,
404 Literal::MakeInt(context, line, /*value=*/0)));
413 context, line, *scalarType,
414 Literal::MakeInt(context, line, /*value=*/1)));
426 expr = Constructor::Convert(context, line,
427 scalarType->toCompound(context, constantFieldIdx, /*rows=*/1),
433 return Swizzle::Make(context, std::move(expr), swizzleComponents);
436 std::unique_ptr<Expression> Swizzle::Make(const Context& context,
456 return ConstructorSplat::Make(context, line,
457 exprType.toCompound(context, components.size(), /*rows=*/1),
485 return Swizzle::Make(context, std::move(base.base()), combined);
498 context, splat.fLine,
499 splat.type().componentType().toCompound(context, components.size(), /*rows=*/1),
506 if (auto replacement = optimize_constructor_swizzle(context, ctor, components)) {
512 return std::make_unique<Swizzle>(context, std::move(expr), components);