exportc is now not allowed for type aliases (#9979)

This commit is contained in:
Neelesh Chandola
2019-01-03 00:31:06 +05:30
committed by Andreas Rumpf
parent 9fb8c3d965
commit 7c5ae00887
2 changed files with 14 additions and 0 deletions

View File

@@ -1101,6 +1101,8 @@ proc typeSectionRightSidePass(c: PContext, n: PNode) =
#debug s.typ
s.ast = a
popOwner(c)
if sfExportc in s.flags and s.typ.kind == tyAlias:
localError(c.config, name.info, "{.exportc.} not allowed for type aliases")
let aa = a.sons[2]
if aa.kind in {nkRefTy, nkPtrTy} and aa.len == 1 and
aa.sons[0].kind == nkObjectTy:

12
tests/pragmas/t5149.nim Normal file
View File

@@ -0,0 +1,12 @@
discard """
errormsg: "{.exportc.} not allowed for type aliases"
line: 9
"""
type
X* = object
a: int
Y* {.exportc.} = X
proc impl*(x: X) =
echo "it works"