Jump to page: 1 2 3
Thread overview
[Issue 16574] [REG 2.072.0-b1] Unexplained errors about functions that overridde anything
Oct 02, 2016
Martin Nowak
Oct 06, 2016
b2.temp@gmx.com
Oct 06, 2016
b2.temp@gmx.com
Oct 06, 2016
Walter Bright
Oct 06, 2016
b2.temp@gmx.com
Oct 07, 2016
b2.temp@gmx.com
Oct 10, 2016
Martin Nowak
Oct 19, 2016
Martin Nowak
Oct 19, 2016
b2.temp@gmx.com
Oct 19, 2016
Martin Nowak
Oct 19, 2016
b2.temp@gmx.com
Oct 20, 2016
b2.temp@gmx.com
Oct 24, 2016
Martin Nowak
Oct 25, 2016
b2.temp@gmx.com
Oct 25, 2016
Martin Nowak
Oct 27, 2016
Martin Nowak
Nov 10, 2016
Martin Nowak
Nov 17, 2016
Martin Nowak
Nov 19, 2016
Martin Nowak
Nov 20, 2016
b2.temp@gmx.com
Nov 20, 2016
Martin Nowak
October 02, 2016
https://issues.dlang.org/show_bug.cgi?id=16574

Martin Nowak <code@dawg.eu> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |code@dawg.eu

--- Comment #1 from Martin Nowak <code@dawg.eu> ---
Reproduced the override errors w/ https://github.com/BBasile/kheops/commit/2f99686d346c291e1cfbe6e1412373d5cc1a385c. I don't get the error about the default ctor (might have been fixed in the meantime).

--
October 06, 2016
https://issues.dlang.org/show_bug.cgi?id=16574

--- Comment #2 from b2.temp@gmx.com ---
The culprit is this PR https://github.com/dlang/dmd/pull/5690

--
October 06, 2016
https://issues.dlang.org/show_bug.cgi?id=16574

--- Comment #3 from b2.temp@gmx.com ---
What happens is that an alias declaration inside a class creates a silent error (this is a second issue). When the alias is put out of the class the "real" error appears before those related to overriding.

The project is updated https://github.com/BBasile/kheops/commit/c9522681ee5ffd3d6d4bb298d4a5597bcbb1d510

>From now, to see the regression just clone, "cd kheops" and "dub".

--
October 06, 2016
https://issues.dlang.org/show_bug.cgi?id=16574

Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla@digitalmars.com

--- Comment #4 from Walter Bright <bugzilla@digitalmars.com> ---
(In reply to b2.temp from comment #3)
> What happens is that an alias declaration inside a class creates a silent error (this is a second issue).

Can you file a report for that one with an example, please?

--
October 06, 2016
https://issues.dlang.org/show_bug.cgi?id=16574

--- Comment #5 from b2.temp@gmx.com ---
In a first time the good new is that I have a reduction:


interface Desc {}

class Bug(T): Desc
if (is(T : Desc))
{}

alias Type = Bug!Bar;

class Bar: Desc
{
    Type a;
    void test(){}
}

class Baz: Bar
{
    override void test(){}
}

void main()
{
    Bar b = new Bar;
}

--
October 07, 2016
https://issues.dlang.org/show_bug.cgi?id=16574

--- Comment #6 from b2.temp@gmx.com ---
More information: Today I've reinstalled dmd 2.071.2 and bad news: the short example posted yesterday neither compiles with 2.071.2, unless the alias declaration is put in class Bar, which leads to think that there might be an other regression.

--
October 10, 2016
https://issues.dlang.org/show_bug.cgi?id=16574

--- Comment #7 from Martin Nowak <code@dawg.eu> ---
Smells like due to the lazy alias, semantic analysis of the base class is unfinished before checking the derived class' overload.

--
October 19, 2016
https://issues.dlang.org/show_bug.cgi?id=16574

--- Comment #8 from Martin Nowak <code@dawg.eu> ---
Well your code doesn't build with any of the past versions of the compiler, b/c
of the template PublishedObjectArray!(CustomControl) being recursively used in
a field of CustomControl.
Can you provide any version of your software that correctly works w/ a previous
version, but fails to compile now?

--
October 19, 2016
https://issues.dlang.org/show_bug.cgi?id=16574

--- Comment #9 from b2.temp@gmx.com ---
(In reply to Martin Nowak from comment #8)
> Well your code doesn't build with any of the past versions of the compiler,
> b/c of the template PublishedObjectArray!(CustomControl) being recursively
> used in a field of CustomControl.
> Can you provide any version of your software that correctly works w/ a
> previous version, but fails to compile now?

done, the alias must be moved in CustomControl. But it means that the reduction is also invalid. What's really sure is the PR that introduced the regression, 5690.

--
October 19, 2016
https://issues.dlang.org/show_bug.cgi?id=16574

--- Comment #10 from Martin Nowak <code@dawg.eu> ---
Just tested https://github.com/BBasile/kheops/commit/a00f300c4281b2d4aaf95e7fabde48d3dc3816e9. This commit did build with 2.070.2, 2.071.2, and still builds with 2.072.0-b2. Also dub test does pass with 2.071.2 and 2.072.0-b2, so this doesn't show any regression.

If OTOH the recursive alias is declared outside of the class, all versions fail to compile.

I went back and tested https://github.com/BBasile/kheops/commit/2f99686d346c291e1cfbe6e1412373d5cc1a385c which now also passes tests. Have you fixed some upstream library (e.g. iz)?

I think all the override errors were just follow-up errors from a semantic analysis failure for the class or it's base class (e.g. due to the recursive alias).

For your next bug report, please properly document all code involved or even provide a zip file here. Of course, at best you succeed to reduce the test case.

--
« First   ‹ Prev
1 2 3