ddmd.opover

Compiler implementation of the D programming language.

Members

Functions

build_overload
Expression build_overload(Loc loc, Scope* sc, Expression ethis, Expression earg, Dsymbol d)

Utility to build a function call out of this reference and argument.

compare_overload
Expression compare_overload(BinExp e, Scope* sc, Identifier id)

Common code for overloading of EqualExp and CmpExp

inferApplyArgTypes
bool inferApplyArgTypes(ForeachStatement fes, Scope* sc, ref Dsymbol sapply)

Given array of parameters and an aggregate type, if any of the parameter types are missing, attempt to infer them from the aggregate type.

isAggregate
AggregateDeclaration isAggregate(Type t)

If type is a class or struct, return the symbol for it, else NULL

isCommutative
bool isCommutative(TOK op)

Determine if operands of binary op can be reversed to fit operator overload.

opToArg
Objects* opToArg(Scope* sc, TOK op)

Helper function to turn operator into template argument list

op_overload
Expression op_overload(Expression e, Scope* sc)

Operator overload. Check for operator overload, if so, replace with function call. Return NULL if not an operator overload.

search_function
Dsymbol search_function(ScopeDsymbol ad, Identifier funcid)

Search for function funcid in aggregate ad.

Static functions

inferApplyArgTypesY
int inferApplyArgTypesY(TypeFunction tf, Parameters* parameters, int flags = 0)

Infer parameters from type of function.

opId
Identifier opId(Expression e)

Get Identifier for operator overload.

opId_r
Identifier opId_r(Expression e)

Get Identifier for reverse operator overload, NULL if not supported for this operator.

Meta

Source

See Source File
$(DMDSRC _opover.d)