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.delegatize
Compiler implementation of the
D programming language.
Authors:
License:
Source delegatize.d
Documentation https://dlang.org/phobos/dmd_delegatize.html
- Expression
toDelegate(Expressione, Typet, Scope*sc); - Convert expression into a delegate.Used to convert the argument to a lazy parameter.Parameters:
Expression eargument to convert to a delegate Type tthe type to be returned by the delegate Scope* sccontext Returns:A delegate literal - bool
lambdaCheckForNestedRef(Expressione, Scope*sc); - Look for references to variables in a scope enclosing the new function literal.Essentially just calls checkNestedReference() for each variable reference in e`.Parameters:
Scope* sccontext Expression eexpression to check Returns:true if error occurs. - bool
ensureStaticLinkTo(Dsymbols, Dsymbolp); - See if context
sis nested within contextp, meaning itpis reachable at runtime by walking the static links. If any of the intervening contexts are function literals, make sure they are delegates.Parameters:Dsymbol sinner context Dsymbol pouter context Returns:true means it is accessible by walking the context pointers at runtimeReferences for static links see https://en.wikipedia.org/wiki/Call_stack#Functions_of_the_call_stack
Copyright © 1999-2018 by the D Language Foundation | Page generated by
Ddoc on Thu Nov 1 12:28:16 2018