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