template testHelper( A ... ) { char []testHelper() { char []result; foreach( t; a ) { result ~= "int " ~ t ~ ";\r\n"; } return result; } } template test( A ... ) { const char []test = testHelper( A ); } int main( char [][]args ) { mixin( test!( "hello", "world" ) ); return 0; }
Added to DStress as http://dstress.kuehne.cn/nocmpile/m/mixin_34_A.d
Fixed DMD 1.014
This is fixed in DMD2.028 but not in 1.042. Assertion failure: 'i < parameters->dim' on line 806 in file 'template.c'
This is the test case which is failing in dstress: char[] testHelper(A ...)(){ char[] result; foreach(t; a){ result ~= "int " ~ t ~ ";\n"; } return result; } int main(){ mixin( testHelper!( "hello", "world" )() ); return 0; } Note that in the foreach(), it's 'a' instead of 'A'. So it's a bad test, which is actually an instance of bug 2229 (which I've just patched). The bug here was indeed fixed in 1.014.
The dstress test is failing again in dmd 1051: dmd: template.c:4017: Identifier* TemplateInstance::genIdent(): Assertion `0' failed. That DStress case is correct, it's in nocompile/, so shouldn't compile.
*** Issue 3482 has been marked as a duplicate of this issue. ***
(In reply to comment #5) > The dstress test is failing again in dmd 1051: > dmd: template.c:4017: Identifier* TemplateInstance::genIdent(): Assertion `0' > failed. > > That DStress case is correct, it's in nocompile/, so shouldn't compile. Yes, but it's testing bug 2229, not the one which was originally reported here. I'm closing this one, and re-opening the other. BTW it's not a regression. Bug 2229 was never fixed properly.
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル