mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-12 14:23:45 +00:00
Issue #16726 reported an internal compiler error (`semcall.nim(229, 18) nArg != nil`) when calling `toJs` with invalid arguments. The bug has been fixed in the current codebase but lacked a regression test. ```nim import std/jsffi let a = toJs(3) let b = a.toJs(int) # Now produces: Error: type mismatch # Previously: internal error ``` **Changes:** - Added `tests/js/t16726.nim` to verify proper type mismatch error is reported instead of internal compiler error <!-- START COPILOT ORIGINAL PROMPT --> <details> <summary>Original prompt</summary> > > ---- > > *This section details on the original issue you should resolve* > > <issue_title>internal error: semcall.nim(229, 18) nArg != nil</issue_title> > <issue_description>### Example > the code below should give a clean CT error, not an internal error > ```nim > import std/jsffi > let a = toJs(3) > let b = a.toJs(int) > ``` > > ### Current Output > nim r -b:js main > compiler/semcall.nim(229, 18) `nArg != nil` > > ### Expected Output > proper CT error > > ### Additional Information > 1.5.141965880ce> </issue_description> > > <agent_instructions>adds a test case for it and verify it by `./koch temp js -r test.nim` before committing</agent_instructions> > > ## Comments on the Issue (you are @copilot in this section) > > <comments> > <comment_new><author>@ringabout</author><body> > related: https://github.com/nim-lang/Nim/issues/15607</body></comment_new> > </comments> > </details> <!-- START COPILOT CODING AGENT SUFFIX --> - Fixes nim-lang/Nim#16726 <!-- START COPILOT CODING AGENT TIPS --> --- 💬 We'd love your input! Share your thoughts on Copilot coding agent in our [2 minute survey](https://gh.io/copilot-coding-agent-survey). --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com> (cherry picked from commit83d7d8c634)
notes
Prefer moving tests to a non-js directory so that they get tested across all backends automatically. Ideally, tests/js should be reserved to code that only makes sense in js.
Note also that tests for a js specific module (e.g.: std/jsbigints) belong to tests/stdlib, (e.g.: tests/stdlib/tjsbigints.nim)