Fix use of custom pragmas in generic procs (#8165)

Fixes #7626
This commit is contained in:
LemonBoy 2018-07-01 08:06:58 +02:00 • committed by Andreas Rumpf
commit 584d778318
2 changed files with 11 additions and 2 deletions

View file

@ -54,7 +54,8 @@ template macroToExpand(s): untyped =
s.kind in {skMacro, skTemplate} and (s.typ.len == 1 or sfAllUntyped in s.flags) s.kind in {skMacro, skTemplate} and (s.typ.len == 1 or sfAllUntyped in s.flags)
template macroToExpandSym(s): untyped = template macroToExpandSym(s): untyped =
s.kind in {skMacro, skTemplate} and (s.typ.len == 1) and not fromDotExpr sfCustomPragma notin s.flags and s.kind in {skMacro, skTemplate} and
(s.typ.len == 1) and not fromDotExpr
template isMixedIn(sym): bool = template isMixedIn(sym): bool =
let s = sym let s = sym

View file

@ -138,3 +138,11 @@ block:
assert hasIntSerKey assert hasIntSerKey
assert strSerKey == "string" assert strSerKey == "string"
assert nestedItemDefVal == "Nimmers of the world, unite!" assert nestedItemDefVal == "Nimmers of the world, unite!"
block:
template simpleAttr {.pragma.}
type Annotated {.simpleAttr.} = object
proc generic_proc[T]() =
assert Annotated.hasCustomPragma(simpleAttr)