Created attachment 1006 [details] 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.
Seems to be D1-specific indeed, compiles fine with 2.054 on Linux x64.
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
(In reply to comment #2) What about Denis' test case?
(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.
Zoadian, your test case is incomplete. Error: undefined identifier Modifier Also could you try reducing it with DustMite?
Reduced source code: http://pastebin.com/p3K8CMXF never worked with dustmite, and no time to get into it now. sry.
And where are the guys: import util.math; import util.array;
they are not needed, sry, forgot to remove them. : http://pastebin.com/e7HazwDF math.d is empty; this is array.d http://pastebin.com/guBWs4h6
My dmd yields bug6296b.d(16): Error: cannot implicitly convert expression (this) of type ModifiableInt to typeof(this)
I'll DustMite it.
After DustMite-ing all phobos std.* sources: Issue6296
After DustMite-ing all phobos std.* sources: Issue6325
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
D2 fix: https://github.com/D-Programming-Language/dmd/commit/0a927f258e89f92f280c0e855a93ceb05e34a260 Partial D1 fix: https://github.com/D-Programming-Language/dmd/commit/31d6751de3a877c72055a2096a9a9c4a9a25ec9b
However, this D1 bug is still in dmd-1.x branch.
D1 fix: https://github.com/D-Programming-Language/dmd/commit/23846aca52ebd21efab36ff32924c5a6cc17c4c0
Still in dmd-1.x branch (tested after 23846ac and fe308a1). --- void f(A)(A) { } bool b = is(typeof( f(x) )); ---
(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).
Created attachment 1045 [details] Bug testcase
*** This issue has been marked as a duplicate of issue 4269 ***
(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
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル