diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim index 8f70ebd9e7..d5f24347b6 100644 --- a/compiler/semstmts.nim +++ b/compiler/semstmts.nim @@ -132,7 +132,7 @@ const skipForDiscardable = {nkStmtList, nkStmtListExpr, nkOfBranch, nkElse, nkFinally, nkExceptBranch, nkElifBranch, nkElifExpr, nkElseExpr, nkBlockStmt, nkBlockExpr, - nkHiddenStdConv, nkHiddenDeref} + nkHiddenStdConv, nkHiddenSubConv, nkHiddenDeref} proc implicitlyDiscardable(n: PNode): bool = # same traversal as endsInNoReturn diff --git a/tests/discard/tdiscardable.nim b/tests/discard/tdiscardable.nim index 5988f59497..6e80bb1731 100644 --- a/tests/discard/tdiscardable.nim +++ b/tests/discard/tdiscardable.nim @@ -140,3 +140,12 @@ block: # issue #14665 continue inc i test() + +block: + proc test(): (int, int) {.discardable.} = + discard + + if true: + test() + else: + quit()