Lines Matching refs:base
150 std::unique_ptr<Expression> base) {
151 const Type& baseType = base->type();
155 context.fErrors->error(base->fLine,
163 context.fErrors->error(base->fLine,
172 context.fErrors->error(base->fLine,
177 if (!Analysis::UpdateVariableRefKind(base.get(), VariableReference::RefKind::kReadWrite,
185 context.fErrors->error(base->fLine,
196 base->fLine,
201 context.fErrors->error(base->fLine,
208 base = baseType.scalarTypeForLiteral().coerceExpression(std::move(base), context);
209 if (!base) {
219 return PrefixExpression::Make(context, op, std::move(base));
223 std::unique_ptr<Expression> base) {
226 SkASSERT(!base->type().isArray());
227 SkASSERT(base->type().componentType().isNumber());
228 return base;
231 SkASSERT(!base->type().isArray());
232 SkASSERT(base->type().componentType().isNumber());
233 return negate_operand(context, std::move(base));
236 SkASSERT(base->type().isBoolean());
237 return logical_not_operand(context, std::move(base));
241 SkASSERT(base->type().isNumber());
242 SkASSERT(Analysis::IsAssignable(*base));
247 SkASSERT(!base->type().isArray());
248 SkASSERT(base->type().componentType().isInteger());
249 SkASSERT(!base->type().isLiteral());
256 return std::make_unique<PrefixExpression>(op, std::move(base));