August 15, 2013 UFCS and function scope | ||||
|---|---|---|---|---|
| ||||
Why does UFCS seem to require that functions be defined in a
higher (global being the highest) scope than themselves while the
normal function syntax works fine?
This is OK:
int fun1(int n) {
return n + 1;
}
int fun2(int n) {
return n.fun1;
}
This is also OK:
int fun3(int n) {
int fun4(int n) {
return n + 1;
}
return fun4(n);
}
This is not OK:
int fun5(int n) {
int fun6(int n) {
return n + 1;
}
return n.fun6;
}
| ||||
August 15, 2013 Re: UFCS and function scope | ||||
|---|---|---|---|---|
| ||||
Posted in reply to ixid | ixid:
> This is not OK:
> int fun5(int n) {
> int fun6(int n) {
> return n + 1;
> }
>
> return n.fun6;
> }
Unfortunately this is by design, and at the moment it's unlikely to change. And I think it's done this way to avoid troubles with code in class methods.
Bye,
bearophile
| |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply