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
Implements conversion from expressions to delegates for lazy parameters.
Specification Lazy Parameters
Authors: 
License: 
Source delegatize.d
Documentation https://dlang.org/phobos/dmd_delegatize.html
- ExpressiontoDelegate(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
- boollambdaCheckForNestedRef(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.
- boolensureStaticLinkTo(Dsymbols, Dsymbolp);
- See if contextsis 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-2025 by the D Language Foundation | Page generated by
Ddoc on Mon Mar 31 10:27:49 2025