www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 18753] New: chunkBy compile error causes ICE

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: nobody puremagic.com
          Reporter: hsteoh 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]
------



because of the ICE, in addition to the compile failure.

--
Apr 10 2018