[Issue 13593] New: object.d hijacked
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Thu Oct 9 23:26:24 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=13593
Issue ID: 13593
Summary: object.d hijacked
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: critical
Priority: P1
Component: DMD
Assignee: nobody at puremagic.com
Reporter: doob at me.com
I have a file named "Object.d", in a directory called "foo". The module name of
this file is "foo.Object". As it happens, I'm using OS X which uses a case
insensitive file system. I also have another file, say "Bar.d" in "foo", with
the module name "foo.Bar". When I try to compile/run Bar.d with rdmd as
follows:
rdmd foo/Bar.d
I get a lot of errors like "undefined identifier string" and "undefined
identifier size_t" from some modules in druntime and Phobos. If I rename
"foo/Object.d" to "foo/Object2.d", leaving the module name as "foo.Object"
everything works as expected.
I think the issue is that "rdmd" adds a flag, "-Ifoo", when running dmd to get
the dependencies. But the module system should still prevent it. It seems like
the compiler uses the filename instead of the declared module name as the
module name.
This is similar to issue 90 [1]. I don't know if we should reopen that one
instead.
[1] https://issues.dlang.org/show_bug.cgi?id=90
--
More information about the Digitalmars-d-bugs
mailing list