Adds distinct and borrow to the one and only true index.

This commit is contained in:
Grzegorz Adam Hankiewicz 2013-06-09 15:23:53 +02:00
commit a7e70e6229

View file

@ -1388,7 +1388,7 @@ accesses its environment. If it does so, it has the calling convention
Distinct type Distinct type
------------- -------------
A distinct type is new type derived from a `base type`:idx: that is A `distinct type`:idx: is new type derived from a `base type`:idx: that is
incompatible with its base type. In particular, it is an essential property incompatible with its base type. In particular, it is an essential property
of a distinct type that it **does not** imply a subtype relation between it of a distinct type that it **does not** imply a subtype relation between it
and its base type. Explicit type conversions from a distinct type to its and its base type. Explicit type conversions from a distinct type to its
@ -1435,7 +1435,7 @@ number without unit; and the same holds for division:
This quickly gets tedious. The implementations are trivial and the compiler This quickly gets tedious. The implementations are trivial and the compiler
should not generate all this code only to optimize it away later - after all should not generate all this code only to optimize it away later - after all
``+`` for dollars should produce the same binary code as ``+`` for ints. ``+`` for dollars should produce the same binary code as ``+`` for ints.
The pragma ``borrow`` has been designed to solve this problem; in principle The pragma `borrow`:idx: has been designed to solve this problem; in principle
it generates the above trivial implementations: it generates the above trivial implementations:
.. code-block:: nimrod .. code-block:: nimrod