diff options
Diffstat (limited to 'compiler/parser.nim')
-rw-r--r-- | compiler/parser.nim | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/compiler/parser.nim b/compiler/parser.nim index e4c04c0f7..f4d1aca15 100644 --- a/compiler/parser.nim +++ b/compiler/parser.nim @@ -1523,6 +1523,13 @@ proc parseGenericParam(p: var TParser): PNode = # progress guaranteed while true: case p.tok.tokType + of tkIn, tkOut: + let kind = if p.tok.tokType == tkIn: nkInTy + else: nkOutTy + a = newNodeP(kind, p) + getTok(p) + expectIdent(p) + a.addSon(parseSymbol(p)) of tkSymbol, tkAccent: a = parseSymbol(p) if a.kind == nkEmpty: return @@ -1551,7 +1558,7 @@ proc parseGenericParamList(p: var TParser): PNode = getTok(p) optInd(p, result) # progress guaranteed - while p.tok.tokType in {tkSymbol, tkAccent}: + while p.tok.tokType in {tkSymbol, tkAccent, tkIn, tkOut}: var a = parseGenericParam(p) addSon(result, a) if p.tok.tokType notin {tkComma, tkSemiColon}: break |