Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Internal compiler error when parsing from literals in const with explicit type #1858

Closed
bbannier opened this issue Sep 6, 2024 · 0 comments · Fixed by #1903
Closed

Internal compiler error when parsing from literals in const with explicit type #1858

bbannier opened this issue Sep 6, 2024 · 0 comments · Fixed by #1903
Assignees
Labels
Bug Something isn't working Diagnostics Parsing

Comments

@bbannier
Copy link
Member

bbannier commented Sep 6, 2024

When parsing (some) literals of the form const x: TYPE = EXPR; we run into a compiler error, e.g.,

module foo;

const a: uint8 = 12; # Fails.
# const a = uint8(12); # Works.

type X = unit {
    : a;
};
$ spicyc -d foo.spicy
[internal-error] codegen: literal parser did not return expression for '12'

--- Aborting
# 0   libhilti.dylib                      0x0000000108bc11c0 _ZN5hilti2rt9BacktraceC2Ev + 528
# 1   libhilti.dylib                      0x0000000108bc1820 _ZN5hilti2rt9BacktraceC1Ev + 28
# 2   libhilti.dylib                      0x0000000108486948 _ZN5hilti4util18abortWithBacktraceEv + 420
# 3   libhilti.dylib                      0x000000010845129c _ZN5hilti6Logger13internalErrorERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEERKNS_8LocationE + 480
# 4   libspicy.dylib                      0x0000000103f6974c _ZN5spicy6detail7codegen13ParserBuilder12parseLiteralERKNS1_10ProductionEPN5hilti10ExpressionE + 828
# 5   libspicy.dylib                      0x0000000103e0f2c0 _ZN5spicy6detail7codegen17ProductionVisitorclEPKNS1_10production4CtorE + 128
# 6   libspicy.dylib                      0x0000000103da1778 _ZNK5spicy6detail7codegen10production4Ctor8dispatchERNS2_7VisitorE + 172
# 7   libspicy.dylib                      0x0000000103ed5428 _ZN5spicy6detail7codegen10production7Visitor8dispatchEPKNS1_10ProductionE + 196
# 8   libspicy.dylib                      0x0000000103ecbdf4 _ZN5spicy6detail7codegen17ProductionVisitor16_parseProductionERKNS1_10ProductionEbRKNS1_10production4MetaE + 8540
# 9   libspicy.dylib                      0x0000000103ddd194 _ZN5spicy6detail7codegen17ProductionVisitor15parseProductionERKNS1_10ProductionEb + 88
# 10  libspicy.dylib                      0x0000000103e8fe58 _ZZN5spicy6detail7codegen17ProductionVisitorclEPKNS1_10production4UnitEENKUlRKT_E_clINSt3__110unique_ptrINS1_10ProductionENSC_14default_deleteISE_EEEEEEDaS9_ + 420
# 11  libspicy.dylib                      0x0000000103e1a480 _ZN5spicy6detail7codegen17ProductionVisitorclEPKNS1_10production4UnitE + 13744
# 12  libspicy.dylib                      0x0000000103d8eff0 _ZNK5spicy6detail7codegen10production4Unit8dispatchERNS2_7VisitorE + 172
# 13  libspicy.dylib                      0x0000000103f0bd40 _ZN5spicy6detail7codegen10production7Visitor8dispatchERKNS1_10ProductionE + 172
# 14  libspicy.dylib                      0x0000000103f0af14 _ZZZN5spicy6detail7codegen17ProductionVisitor24parseNonAtomicProductionERKNS1_10ProductionEPNS_4type4UnitEENKUlRT_E_clIN5hilti2IDEEEDaSA_ENKUlvE2_clEv + 2068
# 15  libspicy.dylib                      0x0000000103ef60b0 _ZZZN5spicy6detail7codegen17ProductionVisitor24parseNonAtomicProductionERKNS1_10ProductionEPNS_4type4UnitEENKUlRT_E_clIN5hilti2IDEEEDaSA_ENKUlbE0_clEb + 8900
# 16  libspicy.dylib                      0x0000000103eea04c _ZZN5spicy6detail7codegen17ProductionVisitor24parseNonAtomicProductionERKNS1_10ProductionEPNS_4type4UnitEENKUlRT_E_clIN5hilti2IDEEEDaSA_ + 5236
# 17  libspicy.dylib                      0x0000000103ee7cc0 _ZN5hilti4util5CacheINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS_2IDEE11getOrCreateIZN5spicy6detail7codegen17ProductionVisitor24parseNonAtomicProductionERKNSE_10ProductionEPNSC_4type4UnitEEUlvE_ZNSF_24parseNonAtomicProductionESI_SL_EUlRT_E_EERKS9_RKS8_OSN_OT0_ + 804
# 18  libspicy.dylib                      0x0000000103ed5b20 _ZN5spicy6detail7codegen17ProductionVisitor24parseNonAtomicProductionERKNS1_10ProductionEPNS_4type4UnitE + 1768
# 19  libspicy.dylib                      0x0000000103ecd35c _ZN5spicy6detail7codegen17ProductionVisitor16_parseProductionERKNS1_10ProductionEbRKNS1_10production4MetaE + 14020
# 20  libspicy.dylib                      0x0000000103ecab08 _ZN5spicy6detail7codegen17ProductionVisitor16_parseProductionERKNS1_10ProductionEbRKNS1_10production4MetaE + 3696
# 21  libspicy.dylib                      0x0000000103ddd194 _ZN5spicy6detail7codegen17ProductionVisitor15parseProductionERKNS1_10ProductionEb + 88
# 22  libspicy.dylib                      0x0000000103dccafc _ZN5spicy6detail7codegen13ParserBuilder16addParserMethodsEPN5hilti4type6StructEPNS_4type4UnitEb + 39632
# 23  libspicy.dylib                      0x0000000103fc8cc0 _ZN5spicy6detail7CodeGen11compileUnitEPNS_4type4UnitEb + 58212
# 24  libspicy.dylib                      0x0000000103c178b0 _ZN12_GLOBAL__N_112VisitorPass1clEPN5hilti11declaration4TypeE + 1584
# 25  libspicy.dylib                      0x0000000103fe5670 _ZN5hilti11declaration4Type8dispatchERNS_7visitor10DispatcherE + 436
# 26  libspicy.dylib                      0x0000000103c18cc4 _ZN5hilti7visitor7VisitorILNS0_5OrderE1EN5spicy7visitor10DispatcherEE8dispatchEPNS_4NodeE + 196
# 27  libspicy.dylib                      0x0000000103c0dbcc _ZN5hilti7visitor5visitIRN12_GLOBAL__N_112VisitorPass1ENS_11declaration6ModuleEEEDaOT_PT0_NSt3__117basic_string_viewIcNSC_11char_traitsIcEEEE + 1044
# 28  libspicy.dylib                      0x0000000103c0cb4c _ZN5spicy6detail7CodeGen14_compileModuleEPN5hilti11declaration6ModuleEiPNS0_7codegen7ASTInfoE + 1000
# 29  libspicy.dylib                      0x0000000103ccd0e4 _ZZN5spicy6detail7CodeGen10compileASTEPN5hilti7ASTRootEEN13VisitorModuleclEPNS2_11declaration6ModuleE + 1244
# 30  libhilti.dylib                      0x0000000107b9e19c _ZN5hilti11declaration6Module8dispatchERNS_7visitor10DispatcherE + 436
# 31  libspicy.dylib                      0x0000000103c18cc4 _ZN5hilti7visitor7VisitorILNS0_5OrderE1EN5spicy7visitor10DispatcherEE8dispatchEPNS_4NodeE + 196

I would have expected this code to compile, but if it cannot due to some conceptual reason we should reject it cleanly.

@bbannier bbannier added Bug Something isn't working Diagnostics Parsing labels Sep 6, 2024
@rsmmr rsmmr self-assigned this Oct 18, 2024
rsmmr added a commit that referenced this issue Oct 18, 2024
@rsmmr rsmmr closed this as completed in ea82c66 Oct 21, 2024
rsmmr added a commit that referenced this issue Oct 21, 2024
* origin/topic/robin/gh-1858-parse-constant:
  Fix the literals parsers not following coercions.
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Bug Something isn't working Diagnostics Parsing
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants