about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2015-04-24 09:49:59 +0530
committerManish Goregaokar <manishsmail@gmail.com>2015-04-24 09:49:59 +0530
commit53d6b38c2136d959a287c002b3fbebeb16177b49 (patch)
tree819f0207c3e5068dcf7abf59d4139bb5a2805cdb /src
parentf91216bdc2ed8646b1b8a625dadea06a8d29af00 (diff)
parent4db0efb45c5b7686f88773b33aa42959f71109c9 (diff)
downloadrust-53d6b38c2136d959a287c002b3fbebeb16177b49.tar.gz
rust-53d6b38c2136d959a287c002b3fbebeb16177b49.zip
Rollup merge of #24753 - tynopex:patch-1, r=steveklabnik
 Add section for range expressions.
Diffstat (limited to 'src')
-rw-r--r--src/doc/reference.md27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/doc/reference.md b/src/doc/reference.md
index d150075a0f4..4e4b9c5bf6e 100644
--- a/src/doc/reference.md
+++ b/src/doc/reference.md
@@ -2806,6 +2806,33 @@ _panicked state_.
 (["a", "b"])[10]; // panics
 ```
 
+### Range expressions
+
+```{.ebnf .gram}
+range_expr : expr ".." expr |
+             expr ".." |
+             ".." expr |
+             ".." ;
+```
+
+The `..` operator will construct an object of one of the `std::ops::Range` variants.
+
+```
+1..2;   // std::ops::Range
+3..;    // std::ops::RangeFrom
+..4;    // std::ops::RangeTo
+..;     // std::ops::RangeFull
+```
+
+The following expressions are equivalent.
+
+```
+let x = std::ops::Range {start: 0, end: 10};
+let y = 0..10;
+
+assert_eq!(x,y);
+```
+
 ### Unary operator expressions
 
 Rust defines three unary operators. They are all written as prefix operators,