5706be1854
Indexing is similar to method calls in having an arbitrary left-hand-side and then something on the right, which is the main part of the expression. Method calls already have a span for that right part, but indexing does not. This means that long method chains that use indexing have really bad spans, especially when the indexing panics and that span in coverted into a panic location. This does the same thing as method calls for the AST and HIR, storing an extra span which is then put into the `fn_span` field in THIR.
202 lines
6.5 KiB
Plaintext
202 lines
6.5 KiB
Plaintext
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:4:1
|
|
|
|
|
LL | fn foo() {
|
|
| ^^^^^^^^ cannot return without recursing
|
|
LL | foo();
|
|
| ----- recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
note: the lint level is defined here
|
|
--> $DIR/lint-unconditional-recursion.rs:1:9
|
|
|
|
|
LL | #![deny(unconditional_recursion)]
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:14:1
|
|
|
|
|
LL | fn baz() {
|
|
| ^^^^^^^^ cannot return without recursing
|
|
LL | if true {
|
|
LL | baz()
|
|
| ----- recursive call site
|
|
LL | } else {
|
|
LL | baz()
|
|
| ----- recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:26:1
|
|
|
|
|
LL | fn quz() -> bool {
|
|
| ^^^^^^^^^^^^^^^^ cannot return without recursing
|
|
LL | if true {
|
|
LL | while quz() {}
|
|
| ----- recursive call site
|
|
...
|
|
LL | loop { quz(); }
|
|
| ----- recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:37:5
|
|
|
|
|
LL | fn bar(&self) {
|
|
| ^^^^^^^^^^^^^ cannot return without recursing
|
|
LL | self.bar()
|
|
| ---------- recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:43:5
|
|
|
|
|
LL | fn bar(&self) {
|
|
| ^^^^^^^^^^^^^ cannot return without recursing
|
|
LL | loop {
|
|
LL | self.bar()
|
|
| ---------- recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:52:5
|
|
|
|
|
LL | fn bar(&self) {
|
|
| ^^^^^^^^^^^^^ cannot return without recursing
|
|
LL | 0.bar()
|
|
| ------- recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:65:5
|
|
|
|
|
LL | fn bar(&self) {
|
|
| ^^^^^^^^^^^^^ cannot return without recursing
|
|
LL | Foo2::bar(self)
|
|
| --------------- recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:71:5
|
|
|
|
|
LL | fn bar(&self) {
|
|
| ^^^^^^^^^^^^^ cannot return without recursing
|
|
LL | loop {
|
|
LL | Foo2::bar(self)
|
|
| --------------- recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:81:5
|
|
|
|
|
LL | fn qux(&self) {
|
|
| ^^^^^^^^^^^^^ cannot return without recursing
|
|
LL | self.qux();
|
|
| ---------- recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:86:5
|
|
|
|
|
LL | fn as_ref(&self) -> &Self {
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
|
|
LL | Baz::as_ref(self)
|
|
| ----------------- recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:93:5
|
|
|
|
|
LL | fn default() -> Baz {
|
|
| ^^^^^^^^^^^^^^^^^^^ cannot return without recursing
|
|
LL | let x = Default::default();
|
|
| ------------------ recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:102:5
|
|
|
|
|
LL | fn deref(&self) -> &() {
|
|
| ^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
|
|
LL | &**self
|
|
| ------ recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:109:5
|
|
|
|
|
LL | fn index(&self, x: usize) -> &Baz {
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
|
|
LL | &self[x]
|
|
| --- recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:118:5
|
|
|
|
|
LL | fn deref(&self) -> &Baz {
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
|
|
LL | self.as_ref()
|
|
| ------------- recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:162:1
|
|
|
|
|
LL | pub fn drop_and_replace(mut a: Option<String>) {
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
|
|
LL | a = None;
|
|
LL | drop_and_replace(a);
|
|
| ------------------- recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:168:1
|
|
|
|
|
LL | pub fn call() -> String {
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
|
|
LL | let s = String::new();
|
|
LL | call();
|
|
| ------ recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:175:1
|
|
|
|
|
LL | pub fn overflow_check(a: i32, b: i32) {
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
|
|
LL | let _ = a + b;
|
|
LL | overflow_check(a, b);
|
|
| -------------------- recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: function cannot return without recursing
|
|
--> $DIR/lint-unconditional-recursion.rs:186:5
|
|
|
|
|
LL | fn default() -> Self {
|
|
| ^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
|
|
...
|
|
LL | ..Default::default()
|
|
| ------------------ recursive call site
|
|
|
|
|
= help: a `loop` may express intention better if this is on purpose
|
|
|
|
error: aborting due to 18 previous errors
|
|
|