From e0437dfec48fb9db40b8db20323fcc37f687f7db Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Tue, 5 Mar 2019 06:25:33 +0100 Subject: better error message for 'owned' --- compiler/semexprs.nim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index ef5315a61..820522f64 100644 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -1519,7 +1519,8 @@ proc asgnToResultVar(c: PContext, n, le, ri: PNode) {.inline.} = # Special typing rule: do not allow to pass 'owned T' to 'T' in 'result = x': if ri.typ != nil and ri.typ.skipTypes(abstractInst).kind == tyOwned and le.typ != nil and le.typ.skipTypes(abstractInst).kind != tyOwned: - localError(c.config, n.info, "cannot return an owned pointer as an unowned pointer") + localError(c.config, n.info, "cannot return an owned pointer as an unowned pointer; " & + "use 'owned(" & typeToString(le.typ) & ")' as the return type") template resultTypeIsInferrable(typ: PType): untyped = typ.isMetaType and typ.kind != tyTypeDesc -- cgit 1.4.1-2-gfad0