Movatterモバイル変換


[0]ホーム

URL:


D Logo
Menu
Search

Library Reference

version 2.112.0

overview

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 usinga local clone.

dmd.delegatize

Implements conversion from expressions to delegates for lazy parameters.

SpecificationLazy Parameters

Authors:
Walter Bright
License:
Boost License 1.0

Sourcedelegatize.d

Documentationhttps://dlang.org/phobos/dmd_delegatize.html

Coveragehttps://codecov.io/gh/dlang/dmd/src/master/compiler/src/dmd/delegatize.d

ExpressiontoDelegate(Expressione, Typet, Scope*sc);
Convert expression into a delegate.
Used to convert the argument to a lazy parameter.
Parameters:
Expressioneargument to convert to a delegate
Typetthe 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 callscheckNestedReference() for each variable reference ine`.
Parameters:
Scope*sccontext
Expressioneexpression to check
Returns:
true if error occurs.
boolensureStaticLinkTo(Dsymbols, Dsymbolp);
See if contexts is nested within contextp, meaning itp is reachable at runtime by walking the static links. If any of the intervening contexts are function literals, make sure they are delegates.
Parameters:
Dsymbolsinner context
Dsymbolpouter context
Returns:
true means it is accessible by walking the context pointers at runtime

Referencesfor static links seehttps://en.wikipedia.org/wiki/Call_stack#Functions_of_the_call_stack

Copyright © 1999-2026 by theD Language Foundation | Page generated byDdoc on Fri Feb 20 00:51:13 2026

[8]ページ先頭

©2009-2026 Movatter.jp