From 3be404af0488805493a46329d35ad276d739151d Mon Sep 17 00:00:00 2001 From: n5m <72841454+n5m@users.noreply.github.com> Date: Mon, 9 Nov 2020 10:45:43 +0000 Subject: [PATCH] include example of error-marked copy proc (#15886) * include example of error-marked copy proc * Update destructors.rst --- doc/destructors.rst | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/destructors.rst b/doc/destructors.rst index 66f1043b36..e48e360dd5 100644 --- a/doc/destructors.rst +++ b/doc/destructors.rst @@ -184,8 +184,14 @@ The general pattern in ``=copy`` looks like: The ``=copy`` proc can be marked with the ``{.error.}`` pragma. Then any assignment -that otherwise would lead to a copy is prevented at compile-time. +that otherwise would lead to a copy is prevented at compile-time. This looks like: +.. code-block:: nim + + proc `=copy`(dest: var T; source: T) {.error.} + +but a custom error message (e.g., ``{.error: "custom error".}``) will not be emitted +by the compiler. Notice that there is no ``=`` before the ``{.error.}`` pragma. Move semantics ==============