fix #14873 properly by skipping abi field in importc type (#17944)

* fix #14873 properly by skipping `abi` field in importc type

* add test

* fix test for windows
This commit is contained in:
Timothee Cour 2021-05-07 10:36:41 -07:00 • committed by GitHub
commit 98c29c01eb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 14 deletions

View file

@ -11,5 +11,21 @@ proc use* (m: var MyType): int =
result = 3
block:
# bug #14873
var l: Lock
doAssert $l == "()"
doAssert ($l).len > 0
# on posix, "()", on windows, something else, but that shouldn't be part of the spec
# what matters is that `$` doesn't cause the codegen bug mentioned
when true: # intentional
# bug https://github.com/nim-lang/Nim/issues/14873#issuecomment-784241605
type
Test = object
path: string # Removing this makes both cases work.
lock: Lock
# A: This is not fine.
var a = Test()
proc main(): void =
# B: This is fine.
var b = Test()
main()