[Issue 12242] conflict error with public imports

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Mar 23 08:57:55 PDT 2014


https://d.puremagic.com/issues/show_bug.cgi?id=12242



--- Comment #6 from Kenji Hara <k.hara.pg at gmail.com> 2014-03-23 08:57:48 PDT ---
(In reply to comment #4)
> This is not a compiler bug. It has nothing to do with 314.
> The problem is that 'strip' is defined in both std.string and std.algorithm.

This is a compiler bug on cross-module overload set handling. It's not directly
related to issue 313 & 314.

> test.d:
> module test;
> public:
> import std.string;
> import std.algorithm;

In test.d, 'strip' is a cross module overload set (CMOS) of 'std.string.strip'
and 'std.algorithm.strip'.

> main.d:
> import test;
> import std.string;
> void main(){  auto a=" af ".strip;}

In main.d, 'strip' is a CMOS of the CMOS in test.d and 'std.stding.strip'.
So, the newly created CMOS should be merged to the set [std.string.strip,
std.algorithm.strip]. But currently OverloadSet and template cannot be merged
into one OverloadSet object in ScopeDsymbol::search.

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list