summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorcooldome <ariabushenko@bk.ru>2018-04-29 23:17:07 +0100
committercooldome <ariabushenko@bk.ru>2018-04-29 23:17:07 +0100
commitb3a80dd2eb775367b52c1aed3f130cbdd51d36aa (patch)
treec2a25baf17d18d18cf287fbb3f9b3ba45825fe30
parent0c9c1c013e9060ccafca9ac4c22031e687b6c984 (diff)
downloadNim-b3a80dd2eb775367b52c1aed3f130cbdd51d36aa.tar.gz
update the doc
-rw-r--r--changelog.md2
-rw-r--r--compiler/types.nim2
-rw-r--r--doc/manual.rst10
3 files changed, 10 insertions, 4 deletions
diff --git a/changelog.md b/changelog.md
index 8ac02a388..ddfeb4d36 100644
--- a/changelog.md
+++ b/changelog.md
@@ -81,6 +81,8 @@
   Imported exceptions can be raised and caught just like Nim exceptions.
   More details in language manual.
 
+- Range float typed, example `range[0.0 .. Inf]`. More details in language manual.
+
 ### Tool changes
 
 - ``jsondoc2`` has been renamed ``jsondoc``, similar to how ``doc2`` was renamed
diff --git a/compiler/types.nim b/compiler/types.nim
index 19e61a332..bb6a132bb 100644
--- a/compiler/types.nim
+++ b/compiler/types.nim
@@ -704,7 +704,7 @@ proc lastValue*[T:BiggestInt|BiggestFloat](t: PType; fixedUnsigned = false): T =
           internalError("invalid kind for first(" & $t.kind & ')')
           result = NaN
 
-proc lastOrd*(t: PType; fixedUnsigned = false): BiggestInt {.inline.}= 
+proc lastOrd*(t: PType; fixedUnsigned = false): BiggestInt {.inline.} = 
   lastValue[BiggestInt](t, fixedUnsigned)
 
 proc lengthOrd*(t: PType): BiggestInt =
diff --git a/doc/manual.rst b/doc/manual.rst
index 636bf796b..e67d8c0f4 100644
--- a/doc/manual.rst
+++ b/doc/manual.rst
@@ -741,22 +741,26 @@ For further details, see `Convertible relation
 
 Subrange types
 --------------
-A subrange type is a range of values from an ordinal type (the base
+A subrange type is a range of values from an ordinal or float point type (the base
 type). To define a subrange type, one must specify it's limiting values: the
 lowest and highest value of the type:
 
 .. code-block:: nim
   type
     Subrange = range[0..5]
+    PositiveFloat = range[0.0..Inf]
 
 
 ``Subrange`` is a subrange of an integer which can only hold the values 0
-to 5. Assigning any other value to a variable of type ``Subrange`` is a
+to 5. ``PositiveFloat`` defines a subrange of all positive floating point values.
+NaN does not belong to any subrange of floating point types.
+Assigning any other value to a variable of type ``Subrange`` is a
 checked runtime error (or static error if it can be statically
 determined). Assignments from the base type to one of its subrange types
 (and vice versa) are allowed.
 
-A subrange type has the same size as its base type (``int`` in the example).
+A subrange type has the same size as its base type (``int`` in the 
+Subrange example).
 
 
 Pre-defined floating point types