]> git.lizzy.rs Git - rust.git/commitdiff
Add examples in error explanation E0267 and E0268
authorGuillaume Gomez <guillaume1.gomez@gmail.com>
Wed, 1 Jul 2015 11:37:02 +0000 (13:37 +0200)
committerGuillaume Gomez <guillaume1.gomez@gmail.com>
Wed, 1 Jul 2015 17:14:27 +0000 (19:14 +0200)
src/librustc/diagnostics.rs

index 68ca0eac37a5dbcf556242416262a8914937fdb1..08ff692fd46a08d36da1d841481c46ee9fc2d794 100644 (file)
@@ -602,15 +602,47 @@ fn foo<'a, 'b, 'a>(x: &'a str, y: &'b str) { }
 
 E0267: r##"
 This error indicates the use of a loop keyword (`break` or `continue`) inside a
-closure but outside of any loop. Break and continue can be used as normal inside
-closures as long as they are also contained within a loop. To halt the execution
-of a closure you should instead use a return statement.
+closure but outside of any loop. Erroneous code example:
+
+```
+let w = || { break; }; // error: `break` inside of a closure
+```
+
+`break` and `continue` keywords can be used as normal inside closures as long as
+they are also contained within a loop. To halt the execution of a closure you
+should instead use a return statement. Example:
+
+```
+let w = || {
+    for _ in 0..10 {
+        break;
+    }
+};
+
+w();
+```
 "##,
 
 E0268: r##"
 This error indicates the use of a loop keyword (`break` or `continue`) outside
 of a loop. Without a loop to break out of or continue in, no sensible action can
-be taken.
+be taken. Erroneous code example:
+
+```
+fn some_func() {
+    break; // error: `break` outside of loop
+}
+```
+
+Please verify that you are using `break` and `continue` only in loops. Example:
+
+```
+fn some_func() {
+    for _ in 0..10 {
+        break; // ok!
+    }
+}
+```
 "##,
 
 E0271: r##"