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)
This directory contains the test cases.
Each test must have a filename of the form: t*.nim
Note: Testament is only aware of tests under a directory (eg tests/foo/) and will ignore
top-level tests like tests/tbar.nim.
Specs
Each test can contain a spec in a discard """ ... """ block.
Check out the parseSpec procedure in the specs module for a full and reliable reference
action
Specifies what action this test should take.
Default: run
Options:
compile- compiles the module and fails the test if compilations fails.run- compiles and runs the module, fails the test if compilation or execution of test code fails.reject- compiles the module and fails the test if compilation succeeds.
There are certain spec keys that imply run, including output and
outputsub.
Categories
Each folder under this directory represents a test category, which can be
tested by running koch tests pcat <category> (or cat to avoid parallel
testing, which is slower).
The folder dll contains simple DLL tests.
The folder realtimeGC contains a test for validating that the realtime GC
can run properly without linking against the nimrtl.dll/so.