Comment #0 by verylonglogin.reg — 2011-07-12T10:03:46Z
Created attachment 1006
Bug testcase
Broken is(typeof(...)) is a realy blocker for me.
I didn't know where was a problem since dmd 1.067 where it was introduced.
And this bug report is the merit of DustMite:
702 КБ of my D sources -> few hours with DustMite (looks like it finally
crashed) -> 63.2 КБ -> some time with DustMite -> 2.33 КБ -> some time by hands
-> 96 bytes.
Comment #1 by hoganmeier — 2011-07-15T05:27:29Z
Seems to be D1-specific indeed, compiles fine with 2.054 on Linux x64.
Comment #2 by suicidenet — 2011-07-15T06:45:28Z
nope probably same error on D2 here:
Assertion failure: '0' on line 1123 in file 'glue.c'
Windows x64 - VisualStudio2010 - VisualD, D2, DMD.2.054
http://pastebin.com/p3K8CMXF
Comment #3 by hoganmeier — 2011-07-15T07:11:15Z
(In reply to comment #2)
What about Denis' test case?
Comment #4 by verylonglogin.reg — 2011-07-15T07:24:06Z
(In reply to comment #3)
> (In reply to comment #2)
>
> What about Denis' test case?
If works with dmd 2.054. And I originally marked this issue as D1 only.
Comment #5 by hoganmeier — 2011-07-15T07:39:34Z
Zoadian, your test case is incomplete.
Error: undefined identifier Modifier
Also could you try reducing it with DustMite?
Comment #6 by suicidenet — 2011-07-15T07:45:55Z
Reduced source code: http://pastebin.com/p3K8CMXF
never worked with dustmite, and no time to get into it now. sry.
Comment #7 by verylonglogin.reg — 2011-07-15T07:56:29Z
And where are the guys:
import util.math;
import util.array;
My dmd yields
bug6296b.d(16): Error: cannot implicitly convert expression (this) of type ModifiableInt to typeof(this)
Comment #10 by verylonglogin.reg — 2011-07-15T08:20:32Z
I'll DustMite it.
Comment #11 by verylonglogin.reg — 2011-07-15T10:24:47Z
After DustMite-ing all phobos std.* sources: Issue6296
Comment #12 by verylonglogin.reg — 2011-07-15T10:25:52Z
After DustMite-ing all phobos std.* sources: Issue6325
Comment #13 by verylonglogin.reg — 2011-09-09T11:31:21Z
dmd 1.070 now fails with:
Assertion failure: '0' on line 1114 in file 'glue.c'
Reduced test case:
---
void f(A)(A) { }
bool b = is(typeof( f(x) ));
---
As it works for `f!(typeof(x))(x)`, looks like IFTI bug
Comment #17 by verylonglogin.reg — 2011-09-15T12:47:03Z
Still in dmd-1.x branch (tested after 23846ac and fe308a1).
---
void f(A)(A) { }
bool b = is(typeof( f(x) ));
---
Comment #18 by clugdbug — 2011-09-16T03:02:04Z
(In reply to comment #17)
> Still in dmd-1.x branch (tested after 23846ac and fe308a1).
> ---
> void f(A)(A) { }
> bool b = is(typeof( f(x) ));
> ---
Aargh, it was 6650 which was fixed, not this one!
I just copied the wrong bug number into the pull request (the commit itself correctly names 6650).
Comment #19 by verylonglogin.reg — 2011-11-19T04:49:07Z
Created attachment 1045
Bug testcase
Comment #20 by clugdbug — 2012-05-03T02:53:13Z
*** This issue has been marked as a duplicate of issue 4269 ***
Comment #21 by bugzilla — 2012-12-10T14:38:13Z
(In reply to comment #19)
> Created an attachment (id=1045) [details]
> Bug testcase
This compiles successfully for both D1 1.076 and D2 2.061