Open al6x opened 1 year ago
Another bug of similar kind, not possible to isolate. The hash of repo version to reproduce.
Seems to be caused by distinct string type, when it's used where string is expected.
nim r keep/main.nim
fatal.nim(54) sysFatal
Error: unhandled exception: index 2 not in 0 .. 1 [IndexDefect]
Nim Compiler Version 1.6.12 [MacOSX: amd64]
Compiled at 2023-03-10
Copyright (c) 2006-2023 by Andreas Rumpf
active boot switches: -d:release -d:nimUseLinenoise
I'd suggest building a debug compiler and compiling the code, can atleast give more information than these error defects.
Got similar bug today, build Nim from sources v1.6.14
, here's the stack trace, but I'm not sure if it would help much
/Users/alex/tmp/Nim/compiler/nim.nim(152) nim
/Users/alex/tmp/Nim/compiler/nim.nim(108) handleCmdLine
/Users/alex/tmp/Nim/compiler/main.nim(278) mainCommand
/Users/alex/tmp/Nim/compiler/main.nim(248) compileToBackend
/Users/alex/tmp/Nim/compiler/main.nim(104) commandCompileToC
/Users/alex/tmp/Nim/compiler/modules.nim(133) compileProject
/Users/alex/tmp/Nim/compiler/modules.nim(53) compileModule
/Users/alex/tmp/Nim/compiler/passes.nim(186) processModule
/Users/alex/tmp/Nim/compiler/passes.nim(74) processTopLevelStmt
/Users/alex/tmp/Nim/compiler/sem.nim(656) myProcess
/Users/alex/tmp/Nim/compiler/sem.nim(624) semStmtAndGenerateGenerics
/Users/alex/tmp/Nim/compiler/semstmts.nim(2448) semStmt
/Users/alex/tmp/Nim/compiler/semexprs.nim(1108) semExprNoType
/Users/alex/tmp/Nim/compiler/semexprs.nim(3179) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2210) semProc
/Users/alex/tmp/Nim/compiler/semstmts.nim(2134) semProcAux
/Users/alex/tmp/Nim/compiler/semexprs.nim(1897) semProcBody
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3076) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(998) semIndirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(3043) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1090) semDirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(969) afterCallActions
/Users/alex/tmp/Nim/compiler/semexprs.nim(40) semTemplateExpr
/Users/alex/tmp/Nim/compiler/sem.nim(430) semAfterMacroCall
/Users/alex/tmp/Nim/compiler/semstmts.nim(2448) semStmt
/Users/alex/tmp/Nim/compiler/semexprs.nim(1108) semExprNoType
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3159) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1841) semAsgn
/Users/alex/tmp/Nim/compiler/semexprs.nim(87) semExprWithType
/Users/alex/tmp/Nim/compiler/semexprs.nim(71) semExprCheck
/Users/alex/tmp/Nim/compiler/semexprs.nim(3074) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1090) semDirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(969) afterCallActions
/Users/alex/tmp/Nim/compiler/semexprs.nim(40) semTemplateExpr
/Users/alex/tmp/Nim/compiler/sem.nim(471) semAfterMacroCall
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3043) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1090) semDirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(969) afterCallActions
/Users/alex/tmp/Nim/compiler/semexprs.nim(40) semTemplateExpr
/Users/alex/tmp/Nim/compiler/sem.nim(441) semAfterMacroCall
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3139) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(182) semIf
/Users/alex/tmp/Nim/compiler/semstmts.nim(116) semExprBranch
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3074) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1089) semDirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(907) semOverloadedCallAnalyseEffects
/Users/alex/tmp/Nim/compiler/semcall.nim(597) semOverloadedCall
/Users/alex/tmp/Nim/compiler/semcall.nim(382) resolveOverloads
/Users/alex/tmp/Nim/compiler/semcall.nim(95) pickBestCandidate
/Users/alex/tmp/Nim/compiler/sigmatch.nim(2577) matches
/Users/alex/tmp/Nim/compiler/sigmatch.nim(2510) matchesAux
/Users/alex/tmp/Nim/compiler/sigmatch.nim(2304) prepareOperand
/Users/alex/tmp/Nim/compiler/semexprs.nim(55) semOperand
/Users/alex/tmp/Nim/compiler/semexprs.nim(3122) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(2750) semTupleConstr
/Users/alex/tmp/Nim/compiler/semexprs.nim(2662) semTuplePositionsConstr
/Users/alex/tmp/Nim/compiler/semexprs.nim(87) semExprWithType
/Users/alex/tmp/Nim/compiler/semexprs.nim(71) semExprCheck
/Users/alex/tmp/Nim/compiler/semexprs.nim(3014) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(3074) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1089) semDirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(907) semOverloadedCallAnalyseEffects
/Users/alex/tmp/Nim/compiler/semcall.nim(605) semOverloadedCall
/Users/alex/tmp/Nim/compiler/semcall.nim(563) semResolvedCall
/Users/alex/tmp/Nim/compiler/seminst.nim(412) generateInstance
/Users/alex/tmp/Nim/compiler/seminst.nim(160) instantiateBody
/Users/alex/tmp/Nim/compiler/semexprs.nim(1897) semProcBody
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3095) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3171) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(1014) semFor
/Users/alex/tmp/Nim/compiler/semstmts.nim(892) semForVars
/Users/alex/tmp/Nim/compiler/semstmts.nim(116) semExprBranch
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3076) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(998) semIndirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(3074) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1089) semDirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(907) semOverloadedCallAnalyseEffects
/Users/alex/tmp/Nim/compiler/semcall.nim(597) semOverloadedCall
/Users/alex/tmp/Nim/compiler/semcall.nim(382) resolveOverloads
/Users/alex/tmp/Nim/compiler/semcall.nim(95) pickBestCandidate
/Users/alex/tmp/Nim/compiler/sigmatch.nim(2577) matches
/Users/alex/tmp/Nim/compiler/sigmatch.nim(2510) matchesAux
/Users/alex/tmp/Nim/compiler/sigmatch.nim(2304) prepareOperand
/Users/alex/tmp/Nim/compiler/semexprs.nim(55) semOperand
/Users/alex/tmp/Nim/compiler/semexprs.nim(3056) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1089) semDirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(907) semOverloadedCallAnalyseEffects
/Users/alex/tmp/Nim/compiler/semcall.nim(605) semOverloadedCall
/Users/alex/tmp/Nim/compiler/semcall.nim(563) semResolvedCall
/Users/alex/tmp/Nim/compiler/seminst.nim(412) generateInstance
/Users/alex/tmp/Nim/compiler/seminst.nim(160) instantiateBody
/Users/alex/tmp/Nim/compiler/semexprs.nim(1897) semProcBody
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3095) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3139) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(188) semIf
/Users/alex/tmp/Nim/compiler/semstmts.nim(123) semExprBranchScope
/Users/alex/tmp/Nim/compiler/semstmts.nim(116) semExprBranch
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3159) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1841) semAsgn
/Users/alex/tmp/Nim/compiler/semexprs.nim(87) semExprWithType
/Users/alex/tmp/Nim/compiler/semexprs.nim(71) semExprCheck
/Users/alex/tmp/Nim/compiler/semexprs.nim(3056) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1089) semDirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(907) semOverloadedCallAnalyseEffects
/Users/alex/tmp/Nim/compiler/semcall.nim(605) semOverloadedCall
/Users/alex/tmp/Nim/compiler/semcall.nim(563) semResolvedCall
/Users/alex/tmp/Nim/compiler/seminst.nim(412) generateInstance
/Users/alex/tmp/Nim/compiler/seminst.nim(160) instantiateBody
/Users/alex/tmp/Nim/compiler/semexprs.nim(1897) semProcBody
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3095) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3095) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3171) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(1002) semFor
/Users/alex/tmp/Nim/compiler/semfields.nim(156) semForFields
/Users/alex/tmp/Nim/compiler/semfields.nim(101) semForObjectFields
/Users/alex/tmp/Nim/compiler/semfields.nim(74) semForObjectFields
/Users/alex/tmp/Nim/compiler/semstmts.nim(2448) semStmt
/Users/alex/tmp/Nim/compiler/semexprs.nim(1108) semExprNoType
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3088) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(2496) semWhen
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3074) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1089) semDirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(907) semOverloadedCallAnalyseEffects
/Users/alex/tmp/Nim/compiler/semcall.nim(597) semOverloadedCall
/Users/alex/tmp/Nim/compiler/semcall.nim(382) resolveOverloads
/Users/alex/tmp/Nim/compiler/semcall.nim(95) pickBestCandidate
/Users/alex/tmp/Nim/compiler/sigmatch.nim(2577) matches
/Users/alex/tmp/Nim/compiler/sigmatch.nim(2510) matchesAux
/Users/alex/tmp/Nim/compiler/sigmatch.nim(2304) prepareOperand
/Users/alex/tmp/Nim/compiler/semexprs.nim(55) semOperand
/Users/alex/tmp/Nim/compiler/semexprs.nim(3056) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1089) semDirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(907) semOverloadedCallAnalyseEffects
/Users/alex/tmp/Nim/compiler/semcall.nim(605) semOverloadedCall
/Users/alex/tmp/Nim/compiler/semcall.nim(563) semResolvedCall
/Users/alex/tmp/Nim/compiler/seminst.nim(412) generateInstance
/Users/alex/tmp/Nim/compiler/seminst.nim(160) instantiateBody
/Users/alex/tmp/Nim/compiler/semexprs.nim(1897) semProcBody
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3095) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3159) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1841) semAsgn
/Users/alex/tmp/Nim/compiler/semexprs.nim(87) semExprWithType
/Users/alex/tmp/Nim/compiler/semexprs.nim(71) semExprCheck
/Users/alex/tmp/Nim/compiler/semexprs.nim(3056) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1089) semDirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(907) semOverloadedCallAnalyseEffects
/Users/alex/tmp/Nim/compiler/semcall.nim(597) semOverloadedCall
/Users/alex/tmp/Nim/compiler/semcall.nim(382) resolveOverloads
/Users/alex/tmp/Nim/compiler/semcall.nim(95) pickBestCandidate
/Users/alex/tmp/Nim/compiler/sigmatch.nim(2577) matches
/Users/alex/tmp/Nim/compiler/sigmatch.nim(2510) matchesAux
/Users/alex/tmp/Nim/compiler/sigmatch.nim(2304) prepareOperand
/Users/alex/tmp/Nim/compiler/semexprs.nim(55) semOperand
/Users/alex/tmp/Nim/compiler/semexprs.nim(3014) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(3074) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1090) semDirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(969) afterCallActions
/Users/alex/tmp/Nim/compiler/semexprs.nim(40) semTemplateExpr
/Users/alex/tmp/Nim/compiler/sem.nim(441) semAfterMacroCall
/Users/alex/tmp/Nim/compiler/semexprs.nim(3161) semExpr
/Users/alex/tmp/Nim/compiler/semstmts.nim(2387) semStmtList
/Users/alex/tmp/Nim/compiler/semexprs.nim(3076) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(1002) semIndirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(3057) semExpr
/Users/alex/tmp/Nim/compiler/semexprs.nim(2446) semMagic
/Users/alex/tmp/Nim/compiler/semexprs.nim(1090) semDirectOp
/Users/alex/tmp/Nim/compiler/semexprs.nim(976) afterCallActions
/Users/alex/tmp/Nim/compiler/semmagic.nim(498) magicsAfterOverloadResolution
/Users/alex/tmp/Nim/compiler/semmagic.nim(213) semTypeTraits
/Users/alex/tmp/Nim/compiler/semmagic.nim(193) evalTypeTrait
/Users/alex/tmp/Nim/lib/system/fatal.nim(54) sysFatal
Error: unhandled exception: index 2 not in 0 .. 1 [IndexDefect]
/Users/alex/tmp/Nim/compiler/semmagic.nim(213) semTypeTraits /Users/alex/tmp/Nim/compiler/semmagic.nim(193) evalTypeTrait
It seems useful.
Description
Got this error:
Unfortunately, I weren't able to create a small test case. I somehow fixed it, looking at the fix it seems like the error was caused by too much template nesting or something like that.
It could be reproduced by checking out the repo with this version d65b59f1083c71c509f418a488b7ce807aa34ba9
and running
nim r mono/examples/todo.nim
.Sorry for not providing the short example, this bug is very hard to isolate, feel free to close this issue if you feel like it's too much work to investigate.
Nim Version
nim -v Nim Compiler Version 1.6.12 [MacOSX: amd64] Compiled at 2023-03-10 Copyright (c) 2006-2023 by Andreas Rumpf
active boot switches: -d:release -d:nimUseLinenoise
Current Output
No response
Expected Output
No response
Possible Solution
No response
Additional Information
No response