Jump to page: 1 2
Thread overview
[Issue 17130] [Reg 2.074] ambiguous implicit super call when inheriting core.sync.mutex.Mutex
Jan 30, 2017
Martin Nowak
Jan 31, 2017
ZombineDev
Feb 01, 2017
Martin Nowak
Feb 03, 2017
Martin Nowak
Feb 12, 2017
ZombineDev
Feb 14, 2017
Martin Nowak
January 30, 2017
https://issues.dlang.org/show_bug.cgi?id=17130

Martin Nowak <code@dawg.eu> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Hardware|x86_64                      |All
                 OS|Linux                       |All
           Severity|enhancement                 |regression

--- Comment #1 from Martin Nowak <code@dawg.eu> ---
Currently breaks vibe.d and a couple of projects on ci.dawg.eu.

--
January 31, 2017
https://issues.dlang.org/show_bug.cgi?id=17130

ZombineDev <petar.p.kirov@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |petar.p.kirov@gmail.com

--- Comment #2 from ZombineDev <petar.p.kirov@gmail.com> ---
This indeed looks like a compiler bug. If the base class has multiple default constructors, the compiler should synthesize multiple default constructors in the derived class. I.e. the base class and the derived class should have equivalent default constructor overload sets.

BTW, the code in question can be easily be worked around like this:
class MyMutex : Mutex
{
    this()
    {
        super();
    }
}

Though the following did not work:
class MyMutex : Mutex
{
    this()
    {
    }
}

Error: core.sync.mutex.Mutex.__ctor called with argument types () matches both:
druntime/import/core/sync/mutex.di(21):     core.sync.mutex.Mutex.this()
and:
druntime/import/core/sync/mutex.di(25):     core.sync.mutex.Mutex.this()
bug.d(5):

--
February 01, 2017
https://issues.dlang.org/show_bug.cgi?id=17130

--- Comment #3 from Martin Nowak <code@dawg.eu> ---
I'll have a look at fixing the compiler implementation later today.

--
February 03, 2017
https://issues.dlang.org/show_bug.cgi?id=17130

Martin Nowak <code@dawg.eu> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #4 from Martin Nowak <code@dawg.eu> ---
https://github.com/dlang/dmd/pull/6513

--
February 10, 2017
https://issues.dlang.org/show_bug.cgi?id=17130

--- Comment #5 from github-bugzilla@puremagic.com ---
Commits pushed to master at https://github.com/dlang/dmd

https://github.com/dlang/dmd/commit/db81df0b6db19f5808e551a01730c15d341dc981 fix Issue 17130 - ambiguous implicit super call

- need type of this to resolve base class ctor overloads

https://github.com/dlang/dmd/commit/5262d78df2d2b4b3ee1fffc3393a5d57b535a481 Merge pull request #6513 from MartinNowak/fix17130

fix Issue 17130 - ambiguous implicit super call

--
February 10, 2017
https://issues.dlang.org/show_bug.cgi?id=17130

github-bugzilla@puremagic.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--
February 12, 2017
https://issues.dlang.org/show_bug.cgi?id=17130

ZombineDev <petar.p.kirov@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |---

--- Comment #6 from ZombineDev <petar.p.kirov@gmail.com> ---
Reopening because even though this was fixed:
class MyMutex : Mutex
{
    this() // OK after https://github.com/dlang/dmd/pull/6513
    {
    }
}

the OP issue is still there:
class MyMutex : Mutex
{
     // NG
}

bug.d(3): Error: core.sync.mutex.Mutex.__ctor called with argument types ()
matches both:
/home/zombinedev/code/repos/dlang/druntime/import/core/sync/mutex.di(21):
core.sync.mutex.Mutex.this()
and:
/home/zombinedev/code/repos/dlang/druntime/import/core/sync/mutex.di(25):
core.sync.mutex.Mutex.this()
bug.d(3): Error: class mutex_attr.MyMutex cannot implicitly generate a default
ctor when base class core.sync.mutex.Mutex is missing a default ctor

--
February 14, 2017
https://issues.dlang.org/show_bug.cgi?id=17130

--- Comment #7 from Martin Nowak <code@dawg.eu> ---
https://github.com/dlang/dmd/pull/6541

--
February 15, 2017
https://issues.dlang.org/show_bug.cgi?id=17130

--- Comment #8 from github-bugzilla@puremagic.com ---
Commits pushed to master at https://github.com/dlang/dmd

https://github.com/dlang/dmd/commit/cfeb41ae8db207d708b48155760a52dba0c57791 fix Issue 17130 - ambiguous implicit super call

- need to pass class type to resolveFuncCall
- also make implicit ctor shared for shared base ctor

https://github.com/dlang/dmd/commit/69182dac5d7e4ba0f32377715f24ccf910d2f333 Merge pull request #6541 from MartinNowak/fix17130

fix Issue 17130 - ambiguous implicit super call

--
February 15, 2017
https://issues.dlang.org/show_bug.cgi?id=17130

github-bugzilla@puremagic.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|---                         |FIXED

--
« First   ‹ Prev
1 2