Problem with UFCS
Michael
pongad at gmail.com
Thu Oct 18 20:14:40 PDT 2012
Thank you guys. I can't believe that haven't thought of that.
I still feel that this is rather odd though. I would expect to be
able to use UFCS in the scope that imports those libraries.
Though I can definitely see how that might lead to obscure bugs.
On Tuesday, 16 October 2012 at 17:07:36 UTC, Jonathan M Davis
wrote:
> On Tuesday, October 16, 2012 18:28:14 Adam D. Ruppe wrote:
>> On Tuesday, 16 October 2012 at 16:12:06 UTC, Michael wrote:
>> > void main() {
>> >
>> > import std.range, std.stdio;
>>
>> The problem is that UFCS only works on functions in the global
>> scope. The import inside a function makes them local, so it
>> doesn't consider them in it.
>>
>> This is apparently by design; Walter said that just a couple
>> weeks ago, though I don't have the link right now and don't
>> remember what he said the reason was.
>>
>> But if you move those imports outside the function the rest of
>> your code will work.
>
> That seems like it goes against the whole "turtles all the way
> down" principle
> that made it so that local imports were added in the first
> place. I wonder what
> the reasoning was.
>
> - Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list