-
Notifications
You must be signed in to change notification settings - Fork 867
Implement direct delegates #19993
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Implement direct delegates #19993
Changes from 3 commits
baf99e8
87cff9a
6682524
894f6f0
67b1ca7
4270507
2d60fe4
dc32fcd
8017ff0
cd6e3c6
adc9b61
be7517d
80a8668
f2f8999
9ddc0f1
d8f11c6
1f6ea38
fa4c43b
e96523d
8127868
49ba6f0
05a3970
0e5d1ce
0410172
f485b25
2b9d108
69a1c61
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| module DelegateExtensionMethod | ||
|
|
||
| open System | ||
| open System.Runtime.CompilerServices | ||
|
|
||
| type Holder() = | ||
| class | ||
| end | ||
|
|
||
| [<Extension>] | ||
| type HolderExtensions = | ||
| [<Extension; NoCompilerInlining>] | ||
| static member Combine (h: Holder, x: int, y: int) : int = x + y | ||
|
|
||
| // An extension member compiles to a static method whose first parameter is the receiver, so using it as a | ||
| // delegate target binds that receiver as a leading argument - a partial application, which has no closed | ||
| // direct-delegate form. A closure must remain regardless of langversion. | ||
| let extensionEta (h: Holder) = Func<int, int, int>(fun a b -> h.Combine(a, b)) |
Uh oh!
There was an error while loading. Please reload this page.