report expression has no type other than has to be used (or discarded… (#20392)

report expression has no type other than has to be used (or discarded) when typ is tyNone in discardCheck

(cherry picked from commit 08c02f0236)
This commit is contained in:
Bung
2022-09-20 20:50:48 +08:00
committed by narimiran
parent 82af5c7f6d
commit 09be80c857
2 changed files with 9 additions and 0 deletions

View File

@@ -139,6 +139,9 @@ proc discardCheck(c: PContext, result: PNode, flags: TExprFlags) =
var n = newNodeI(nkDiscardStmt, result.info, 1)
n[0] = result
elif result.typ.kind != tyError and c.config.cmd != cmdInteractive:
if result.typ.kind == tyNone:
localError(c.config, result.info, "expression has no type: " &
renderTree(result, {renderNoComments}))
var n = result
while n.kind in skipForDiscardable:
if n.kind == nkTryStmt: n = n[0]

6
tests/errmsgs/t8064.nim Normal file
View File

@@ -0,0 +1,6 @@
discard """
errormsg: "expression has no type: values"
"""
import tables
values