Inconsistencies between global imports and function local imports
Tyro[a.c.edwards]
nospam at home.com
Wed Jul 13 08:11:16 PDT 2011
On 7/13/2011 12:07 PM, Jonathan M Davis wrote:
> On Wednesday 13 July 2011 11:56:10 Tyro[a.c.edwards] wrote:
>> Methinks function local imports (introduced in 2.054) is a great idea,
>> however if it is to be allowed, I believe it should provide all the
>> functionality of global imports: which it currently does not.
>>
>> import std.stdio;
>> import std.string;
>> import std.conv;
>>
>> // Note: all of these import formats work if imported here but only
>> // the first work if imported locally to the function.
>>
>> //import std.utf;
>> //import std.utf: toUTF16z;
>> //import std.utf: wcp = toUTF16z;
>>
>> void main()
>> {
>> auto s = "漢字を書くのはどうかな~?";
>> auto s1 = genText(s);
>> writeln(to!string(typeid(s1)));
>> }
>>
>> auto genText(string t)
>> {
>> import std.utf; // This works
>> //import std.utf: toUTF16z; // This doesn't
>> //import std.utf: wcp = toUTF16z; // Neither does this
>>
>> version(Unicode)
>> {
>> // Note: Everything here works with global import
>> // but only the first line works with function local imports
>>
>> return toUTF16z(t); // This works
>> //return t.toUTF16z; // This doesn't
>> //return wcp(t); // Neither does this
>> //return t.wcp; // Or this
>> }
>> else
>> {
>> return t.toStringz;
>> }
>> }
>
> import std.utf: toUTF16z;
>
> is broken to begin with:
>
> http://d.puremagic.com/issues/show_bug.cgi?id=314
> http://d.puremagic.com/issues/show_bug.cgi?id=5161
>
> Rather than just importing the symbol like it should, a selective import
> essentially create a new symbol. So, that's probably why it doesn't work when
> importing inside of a function.
IC, thanks for the response/info... Now I know!
>> [OT - toUTFz]
>>
>> Wasn't there discussion about adding toUTFz to the std.utf? For some
>> reason I thought that was forthcoming in 2.054... whatever happened there?
>
> It hasn't been merged in yet. It should be in 2.055.
>
> https://github.com/D-Programming-Language/phobos/pull/123
>
> - Jonathan M Davis
Got it. Thanks again.
More information about the Digitalmars-d
mailing list