Lines Matching defs:context

36 static std::unique_ptr<Expression> rewrite_matrix_vector_multiply(const Context& context,
46 context, left.clone(), Literal::MakeInt(context, left.fLine, n));
49 context, right.clone(), ComponentArray{(SkSL::SwizzleComponent::Type)n});
53 BinaryExpression::Make(context, std::move(matN), op, std::move(vecN), matNType);
58 sum = BinaryExpression::Make(context,
69 std::unique_ptr<Expression> BinaryExpression::Convert(const Context& context,
91 context.fErrors)) {
98 if (!op.determineBinaryType(context, *rawLeftType, *rawRightType,
100 context.fErrors->error(line, String("type mismatch: '") + op.operatorName() +
107 context.fErrors->error(line, "assignments to opaque type '" + left->type().displayName() +
111 if (context.fConfig->strictES2Mode()) {
113 context.fErrors->error(line, String("operator '") + op.operatorName() +
121 context.fErrors->error(line, String("operator '") + op.operatorName() + "' can not "
127 left = leftType->coerceExpression(std::move(left), context);
128 right = rightType->coerceExpression(std::move(right), context);
133 return BinaryExpression::Make(context, std::move(left), op, std::move(right), resultType);
136 std::unique_ptr<Expression> BinaryExpression::Make(const Context& context,
144 SkAssertResult(op.determineBinaryType(context, left->type(), right->type(),
147 return BinaryExpression::Make(context, std::move(left), op, std::move(right), resultType);
150 std::unique_ptr<Expression> BinaryExpression::Make(const Context& context,
156 SkASSERT(!context.fConfig->strictES2Mode() || op.isAllowedInStrictES2Mode());
157 SkASSERT(!context.fConfig->strictES2Mode() || !left->type().isOrContainsArray());
165 left->type().checkForOutOfRangeLiteral(context, *right);
170 if (std::unique_ptr<Expression> result = ConstantFolder::Simplify(context, line, *left,
175 if (context.fConfig->fSettings.fOptimize) {
182 auto caps = Setting::Convert(context, line, "rewriteMatrixVectorMultiply");
188 rewrite_matrix_vector_multiply(context, *left, op, *right, *resultType);
198 context,