Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

dmd.lambdacomp

Compiler implementation of the D programming language.
This modules implements the serialization of a lambda function. The serialization is computed by visiting the abstract syntax subtree of the given lambda function. The serialization is a string which contains the type of the parameters and the string represantation of the lambda expression.
Authors:

Source lambdacomp.d

class SerializeVisitor: dmd.visitor.SemanticTimeTransitiveVisitor;
The serialize visitor computes the string representation of a lambda function described by the subtree starting from a func.FuncLiteralDeclaration.dmd.

Limitations only IntegerExps, Enums and function arguments are supported in the lambda function body. The arguments may be of any type (basic types, user defined types), except template instantiations. If a function call, a local variable or a template instance is encountered, the serialization is dropped and the function is considered uncomparable.

void visit(FuncLiteralDeclaration fld);
Entrypoint of the SerializeVisitor.
Parameters:
FuncLiteralDeclaration fld the lambda function for which the serialization is computed