www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 24408] New: AF_INET6 duplicated in core.sys.linux.sys.socket

https://issues.dlang.org/show_bug.cgi?id=24408

          Issue ID: 24408
           Summary: AF_INET6 duplicated in core.sys.linux.sys.socket
           Product: D
           Version: D2
          Hardware: All
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P1
         Component: druntime
          Assignee: nobody puremagic.com
          Reporter: issues.dlang jmdavisProg.com

This program

---
void main()
{
    import core.sys.linux.sys.socket;
    import core.sys.posix.sys.socket;
    auto _ = AF_INET6;
}
---

fails to compile, giving the error

---
q.d(60): Error: `AF_INET6` matches conflicting symbols:
/usr/local/include/dmd/core/sys/linux/sys/socket.d(74):        enum member
`core.sys.linux.sys.socket.AF_INET6`
/usr/local/include/dmd/core/sys/posix/sys/socket.d(1848):        enum member
`core.sys.posix.sys.socket.AF_INET6`
---

core.sys.linux.sys.socket publicly imports core.sys.posix.sys.socket like it's
supposed to, but it then declares AF_INET6 locally, which is unnecessary and
causes the compilation error above, since it's declared in
core.sys.posix.sys.socket, because it's standard POSIX.

--
Feb 23