I get this type error from my code (the code with the error is above the error):
Info: Using the environment variable:
NIMBLE_DIR='/home/runner/libmtg/nimble-env'
Hint: used config file
'/home/runner/.choosenim/toolchains/nim-2.0.4/config/nim.cfg' [Conf]
Hint: used config file
'/home/runner/.choosenim/toolchains/nim-2.0.4/config/config.nims' [Conf]
Hint: used config file '/home/runner/libmtg/tests/config.nims' [Conf]
Hint: used config file 'tests/cardbank.nims' [Conf]
..........................................................................................................................................................
/home/runner/libmtg/src/libmtg/cards.nim(60, 22) Warning: imported and not
used: 'dynlib' [UnusedImport]
......
proc islandHandle_553648131() {.cdecl, exportc, dynlib.} =
echo "Event"
const
islandHandle = "islandHandle_553648131"
const
cards`gensym3: array[0 .. 2, CardObject] = [(card "Island" do:
cost = []
typeline = [Basic, Land, {Island}]
text = "({T}: Add {U}.)"
imageUrl =
"https://cards.scryfall.io/normal/front/a/c/acd6be3f-745c-41ad-95c9-1db66ba56be2.jpg?1712356421"
expansion = "Outlaws of Thunder Junction"
rarity = "common"
collectorNumber = 279
eventHandle = islandHandle)[], (scryfallCard "Forest",
"baf8a774-65f3-431e-b084-328ff1000895" do:(discard ))[], (scryfallCard
"Aegis Turtle", "7003ebae-5d82-4360-ae63-0e51c37977ed" do:(discard
))[]] # Error line
proc load(): Table[string, CardObject] {.exportc, cdecl, dynlib.} =
for c`gensym3 in cards`gensym3:
result[c`gensym3.name] = c`gensym3
Card(name: "Island", cost: @[], typeline: newTypeLine({SuperType.Basic},
{MainType.Land}, {SubType.Island}), text: "({T}: Add {U}.)", imageUrl:
"https://cards.scryfall.io/normal/front/a/c/acd6be3f-745c-41ad-95c9-1db66ba56be2.jpg?1712356421",
expansion: "Outlaws of Thunder Junction", rarity: "common",
collectorNumber: 279, eventHandle: islandHandle)
Card(name: "Forest", imageUrl:
"https://cards.scryfall.io/normal/front/b/a/baf8a774-65f3-431e-b084-328ff1000895.jpg?1712356407",
text: "({T}: Add {G}.)", expansion: "Outlaws of Thunder Junction",
collectorNumber: 276, rarity: "common", cost: @[], typeline:
newTypeLine(
{SuperType.Basic}, {MainType.Land}, {SubType.Forest}), power: -1,
toughness: -1)
Card(name: "Aegis Turtle", imageUrl:
"https://cards.scryfall.io/normal/front/7/0/7003ebae-5d82-4360-ae63-0e51c37977ed.jpg?1600697500",
text: "", expansion: "Jumpstart", collectorNumber: 138, rarity:
"common",
cost: @[ManaCostType.Blue], typeline: newTypeLine(
{SuperType.SuperTypeNone}, {MainType.Creature}, {SubType.Turtle}),
power: 0,
toughness: 5)
/home/runner/libmtg/tests/cardbank.nim(8, 1) template/generic instantiation
of `cardSet` from here
/home/runner/libmtg/src/libmtg/cardgen.nim(22, 11) Error: invalid type:
'CardSet' in this context: 'array[0..2, CardObject]' for const
stack trace: (most recent call last)
/tmp/nimblecache-946033505/nimscriptapi_2207287390.nim(222, 29)
/home/runner/libmtg/libmtg.nimble(18, 3) testBefore
/home/runner/.choosenim/toolchains/nim-2.0.4/lib/system/nimscript.nim(265,
7) exec
[1m/home/runner/.choosenim/toolchains/nim-2.0.4/lib/system/nimscript.nim(265,
7) [0m[31mError: [0munhandled exception: FAILED: nim c tests/cardbank
[OSError][36m[0m[0m
Tip: 2 messages have been suppressed, use --verbose to show them.
nimscriptwrapper.nim(160) execScript
Error: Exception raised during nimble script execution
Run
The error is `Error: invalid type: 'CardSet' in this context: 'array[0..2,
CardObject]' for const stack trace: (most recent call last)`. I already checked
and nim gives a different error if the type of the objects being passed to the
array is wrong, and that they were all CardObjects. All other errors I could
fine relating to `Invalid type in context` were all generic errors, which none
of my types have. Why is this error popping up, and how do I fix it?
Keep in mind this section was working before, but I added the card set type to
a file that this section imports, and then this error appeared.