https://issues.dlang.org/show_bug.cgi?id=18753
Issue ID: 18753 Summary: chunkBy compile error causes ICE Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: critical Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: hst...@quickfur.ath.cx Code: ------ unittest { import std.algorithm.iteration : chunkBy; auto n = 3; auto s = [1,2,3].chunkBy!(a => a+n); } ------ Compiler output: ------ /usr/src/d/phobos/std/algorithm/iteration.d(1774): Error: function test.__unittest_L1_C1.ChunkByImpl!(__lambda1, int[]).ChunkByImpl.__lambda11 cannot access frame of function test.__unittest_L1_C1 /usr/src/d/phobos/std/algorithm/iteration.d(1774): Error: function test.__unittest_L1_C1.ChunkByImpl!(__lambda1, int[]).ChunkByImpl.__lambda11 cannot access frame of function test.__unittest_L1_C1 /usr/src/d/phobos/std/algorithm/iteration.d(1801): instantiated from here: ChunkByGroupImpl!(__lambda11, int[], Impl) /usr/src/d/phobos/std/algorithm/iteration.d(1945): instantiated from here: ChunkByImpl!(__lambda1, int[]) test.d(5): instantiated from here: chunkBy!((a) => a + n, int[]) /usr/src/d/phobos/std/range/primitives.d(884): Error: template instance `std.range.primitives.isInputRange!(ChunkByGroupImpl!(__lambda11, int[], Impl))` error instantiating /usr/src/d/phobos/std/algorithm/iteration.d(1762): instantiated from here: isForwardRange!(ChunkByGroupImpl!(__lambda11, int[], Impl)) core.exception.AssertError@dmd/declaration.d(686): Assertion failure ---------------- dmd() [0x539e57] dmd(dmd.declaration.AliasDeclaration dmd.declaration.AliasDeclaration.__ctor(dmd.globals.Loc, dmd.identifier.Identifier, dmd.mtype.Type)+0x4c) [0x53766c] dmd(_ZN25ExpressionSemanticVisitor5visitEP5IsExp+0xc39) [0x5b6c39] dmd(_ZN5IsExp6acceptEP7Visitor+0x1d) [0x5a5dc5] dmd(_Z18expressionSemanticP10ExpressionP5Scope+0x43) [0x5c44e3] dmd(bool dmd.staticcond.evalStaticCondition(dmd.dscope.Scope*, dmd.expression.Expression, dmd.expression.Expression, ref bool)+0x150) [0x64c6e8] dmd(_ZN17StaticIfCondition7includeEP5Scope+0xc5) [0x5190fd] dmd(_ZN22ConditionalDeclaration7includeEP5Scope+0x45) [0x5111b5] dmd(_ZN19StaticIfDeclaration7includeEP5Scope+0x56) [0x5113de] dmd(_ZN22DsymbolSemanticVisitor14attribSemanticEP17AttribDeclaration+0x33) [0x57bd13] dmd(_ZN22DsymbolSemanticVisitor5visitEP19StaticIfDeclaration+0xd) [0x57cab5] dmd(_ZN19StaticIfDeclaration6acceptEP7Visitor+0x1d) [0x511515] dmd(_Z15dsymbolSemanticP7DsymbolP5Scope+0x3d) [0x57860d] dmd(_ZN16TemplateInstance13expandMembersEP5Scope+0xdd) [0x5973bd] dmd(_ZN16TemplateInstance16tryExpandMembersEP5Scope+0x5c) [0x59742c] dmd(void dmd.dsymbolsem.templateInstanceSemantic(dmd.dtemplate.TemplateInstance, dmd.dscope.Scope*, dmd.root.array.Array!(dmd.expression.Expression).Array*)+0x8cd) [0x5867fd] dmd(_ZN22DsymbolSemanticVisitor5visitEP16TemplateInstance+0x16) [0x57e6ce] dmd(_ZN16TemplateInstance6acceptEP7Visitor+0x1d) [0x5974cd] dmd(_Z15dsymbolSemanticP7DsymbolP5Scope+0x3d) [0x57860d] dmd(_ZN14ResolveVisitor5visitEP12TypeInstance+0x45) [0x62cf15] dmd(_ZN12TypeInstance6acceptEP7Visitor+0x1d) [0x60014d] dmd(_Z7resolveP4TypeRK3LocP5ScopePP10ExpressionPS0_PP7Dsymbolb+0x56) [0x62c596] dmd(_ZN19TypeSemanticVisitor5visitEP12TypeInstance+0x51) [0x62acc1] dmd(_ZN12TypeInstance6acceptEP7Visitor+0x1d) [0x60014d] dmd(_Z12typeSemanticP4Type3LocP5Scope+0x4f) [0x62804f] dmd(_ZN4Type11trySemanticERK3LocP5Scope+0x3c) [0x5f79bc] dmd(_ZN25ExpressionSemanticVisitor5visitEP5IsExp+0xad) [0x5b60ad] dmd(_ZN5IsExp6acceptEP7Visitor+0x1d) [0x5a5dc5] dmd(_Z18expressionSemanticP10ExpressionP5Scope+0x43) [0x5c44e3] dmd(_ZN25ExpressionSemanticVisitor5visitEP10LogicalExp+0x155) [0x5c28dd] dmd(_ZN10LogicalExp6acceptEP7Visitor+0x1d) [0x5a9985] dmd(_Z18expressionSemanticP10ExpressionP5Scope+0x43) [0x5c44e3] dmd(_ZN22DsymbolSemanticVisitor5visitEP14VarDeclaration+0x2157) [0x57ae37] dmd(_ZN14VarDeclaration6acceptEP7Visitor+0x1d) [0x539135] dmd(_Z15dsymbolSemanticP7DsymbolP5Scope+0x3d) [0x57860d] dmd(_ZN16TemplateInstance13expandMembersEP5Scope+0xdd) [0x5973bd] dmd(_ZN16TemplateInstance16tryExpandMembersEP5Scope+0x5c) [0x59742c] dmd(void dmd.dsymbolsem.templateInstanceSemantic(dmd.dtemplate.TemplateInstance, dmd.dscope.Scope*, dmd.root.array.Array!(dmd.expression.Expression).Array*)+0x8cd) [0x5867fd] dmd(_ZN22DsymbolSemanticVisitor5visitEP16TemplateInstance+0x16) [0x57e6ce] dmd(_ZN16TemplateInstance6acceptEP7Visitor+0x1d) [0x5974cd] dmd(_Z15dsymbolSemanticP7DsymbolP5Scope+0x3d) [0x57860d] dmd(_ZN25ExpressionSemanticVisitor5visitEP8ScopeExp+0x3c6) [0x5b0136] dmd(_ZN8ScopeExp6acceptEP7Visitor+0x1d) [0x5a44e5] dmd(_Z18expressionSemanticP10ExpressionP5Scope+0x43) [0x5c44e3] dmd(bool dmd.staticcond.evalStaticCondition(dmd.dscope.Scope*, dmd.expression.Expression, dmd.expression.Expression, ref bool)+0x150) [0x64c6e8] dmd(_ZN16Semantic2Visitor5visitEP12StaticAssert+0x76) [0x64e3a6] dmd(_ZN12StaticAssert6acceptEP7Visitor+0x1a) [0x6267ea] dmd(_Z9semantic2P7DsymbolP5Scope+0x3d) [0x64e305] dmd(_ZN16Semantic2Visitor5visitEP20AggregateDeclaration+0x9e) [0x64f4e6] dmd(_ZN16ParseTimeVisitorI10ASTCodegenE5visitEP17StructDeclaration+0x12) [0x63784a] dmd(_ZN17StructDeclaration6acceptEP7Visitor+0x1d) [0x55e175] dmd(_Z9semantic2P7DsymbolP5Scope+0x3d) [0x64e305] dmd(_ZN16Semantic2Visitor5visitEP16TemplateInstance+0x15e) [0x64e6ae] dmd(_ZN16TemplateInstance6acceptEP7Visitor+0x1d) [0x5974cd] dmd(_Z9semantic2P7DsymbolP5Scope+0x3d) [0x64e305] dmd(void dmd.dsymbolsem.templateInstanceSemantic(dmd.dtemplate.TemplateInstance, dmd.dscope.Scope*, dmd.root.array.Array!(dmd.expression.Expression).Array*)+0xa3e) [0x58696e] dmd(_ZN22DsymbolSemanticVisitor5visitEP16TemplateInstance+0x16) [0x57e6ce] dmd(_ZN16TemplateInstance6acceptEP7Visitor+0x1d) [0x5974cd] dmd(_Z15dsymbolSemanticP7DsymbolP5Scope+0x3d) [0x57860d] dmd(_ZN25ExpressionSemanticVisitor5visitEP8ScopeExp+0x3c6) [0x5b0136] dmd(_ZN8ScopeExp6acceptEP7Visitor+0x1d) [0x5a44e5] dmd(_Z18expressionSemanticP10ExpressionP5Scope+0x43) [0x5c44e3] dmd(_ZN25ExpressionSemanticVisitor5visitEP7CallExp+0x49e) [0x5b2ab6] dmd(_ZN7CallExp6acceptEP7Visitor+0x1d) [0x5a79a5] dmd(_Z18expressionSemanticP10ExpressionP5Scope+0x43) [0x5c44e3] dmd(_Z23arrayExpressionSemanticP5ArrayIP10ExpressionEP5Scopeb+0x88) [0x59e288] dmd(_ZN25ExpressionSemanticVisitor5visitEP7CallExp+0xb1f) [0x5b3137] dmd(_ZN7CallExp6acceptEP7Visitor+0x1d) [0x5a79a5] dmd(_Z18expressionSemanticP10ExpressionP5Scope+0x43) [0x5c44e3] dmd(_ZN24StatementSemanticVisitor5visitEP15ReturnStatement+0x4ba) [0x646472] dmd(_ZN15ReturnStatement6acceptEP7Visitor+0x1d) [0x6252e5] dmd(_Z17statementSemanticP9StatementP5Scope+0x43) [0x63d7bb] dmd(_ZN24StatementSemanticVisitor5visitEP17CompoundStatement+0xe8) [0x63db38] dmd(_ZN17CompoundStatement6acceptEP7Visitor+0x1d) [0x62383d] dmd(_Z17statementSemanticP9StatementP5Scope+0x43) [0x63d7bb] dmd(_ZN16Semantic3Visitor5visitEP15FuncDeclaration+0x1178) [0x650b18] dmd(_ZN15FuncDeclaration6acceptEP7Visitor+0x1d) [0x5cab95] dmd(_Z9semantic3P7DsymbolP5Scope+0x3d) [0x64f5b5] dmd(_ZN15FuncDeclaration17functionSemantic3Ev+0x6f) [0x5c6e3f] dmd(_ZN15FuncDeclaration16functionSemanticEv+0xfd) [0x5c6cd5] dmd(_ZN25ExpressionSemanticVisitor5visitEP9DotVarExp+0x343) [0x5b7e83] dmd(_ZN9DotVarExp6acceptEP7Visitor+0x1d) [0x5a7135] dmd(_Z18expressionSemanticP10ExpressionP5Scope+0x43) [0x5c44e3] dmd(_ZN13DotExpVisitor5visitEP10TypeStruct+0x11e5) [0x62ffed] dmd(_ZN10TypeStruct6acceptEP7Visitor+0x1d) [0x600e7d] dmd(_Z6dotExpP4TypeP5ScopeP10ExpressionP10Identifieri+0x49) [0x62d979] dmd(dmd.expression.Expression dmd.expressionsem.semanticY(dmd.expression.DotIdExp, dmd.dscope.Scope*, int)+0xffd) [0x5c5a55] dmd(_ZN25ExpressionSemanticVisitor5visitEP8DotIdExp+0x21) [0x5b7a61] dmd(_ZN8DotIdExp6acceptEP7Visitor+0x1d) [0x5a6f95] dmd(_Z18expressionSemanticP10ExpressionP5Scope+0x43) [0x5c44e3] dmd(_ZN24StatementSemanticVisitor5visitEP15ReturnStatement+0x4ba) [0x646472] dmd(_ZN15ReturnStatement6acceptEP7Visitor+0x1d) [0x6252e5] dmd(_Z17statementSemanticP9StatementP5Scope+0x43) [0x63d7bb] dmd(_ZN16Semantic3Visitor5visitEP15FuncDeclaration+0x1178) [0x650b18] dmd(_ZN16ParseTimeVisitorI10ASTCodegenE5visitEP22FuncLiteralDeclaration+0x12) [0x6375c2] dmd(_ZN22FuncLiteralDeclaration6acceptEP7Visitor+0x1d) [0x5cc865] dmd(_Z9semantic3P7DsymbolP5Scope+0x3d) [0x64f5b5] dmd(_ZN25ExpressionSemanticVisitor5visitEP7FuncExp+0x290) [0x5b20f0] dmd(_ZN7FuncExp6acceptEP7Visitor+0x1d) [0x5a5965] dmd(_Z18expressionSemanticP10ExpressionP5Scope+0x43) [0x5c44e3] dmd(_ZN14ResolveVisitor5visitEP10TypeTypeof+0x9c) [0x62d064] dmd(_ZN10TypeTypeof6acceptEP7Visitor+0x1d) [0x6002a5] dmd(_Z7resolveP4TypeRK3LocP5ScopePP10ExpressionPS0_PP7Dsymbolb+0x56) [0x62c596] dmd(_ZN19TypeSemanticVisitor5visitEP10TypeTypeof+0x41) [0x62adb9] dmd(_ZN10TypeTypeof6acceptEP7Visitor+0x1d) [0x6002a5] dmd(_Z12typeSemanticP4Type3LocP5Scope+0x4f) [0x62804f] dmd(_ZN4Type11trySemanticERK3LocP5Scope+0x3c) [0x5f79bc] dmd(_ZN25ExpressionSemanticVisitor5visitEP5IsExp+0xad) [0x5b60ad] dmd(_ZN5IsExp6acceptEP7Visitor+0x1d) [0x5a5dc5] dmd(_Z18expressionSemanticP10ExpressionP5Scope+0x43) [0x5c44e3] dmd(_ZN25ExpressionSemanticVisitor5visitEP10LogicalExp+0x155) [0x5c28dd] dmd(_ZN10LogicalExp6acceptEP7Visitor+0x1d) [0x5a9985] dmd(_Z18expressionSemanticP10ExpressionP5Scope+0x43) [0x5c44e3] dmd(_ZN25ExpressionSemanticVisitor5visitEP10LogicalExp+0x3c) [0x5c27c4] dmd(_ZN10LogicalExp6acceptEP7Visitor+0x1d) [0x5a9985] dmd(_Z18expressionSemanticP10ExpressionP5Scope+0x43) [0x5c44e3] dmd(_ZN25ExpressionSemanticVisitor5visitEP10LogicalExp+0x3c) [0x5c27c4] dmd(_ZN10LogicalExp6acceptEP7Visitor+0x1d) [0x5a9985] dmd(_Z18expressionSemanticP10ExpressionP5Scope+0x43) [0x5c44e3] dmd(_ZN22DsymbolSemanticVisitor5visitEP14VarDeclaration+0x2157) [0x57ae37] dmd(_ZN14VarDeclaration6acceptEP7Visitor+0x1d) [0x539135] dmd(_Z15dsymbolSemanticP7DsymbolP5Scope+0x3d) [0x57860d] dmd(_ZN16TemplateInstance13expandMembersEP5Scope+0xdd) [0x5973bd] ------ This bug is related to issue #18751 and #14909, but filing separately here because of the ICE, in addition to the compile failure. --