[INFO] updating cached repository jjwest/blixt [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/jjwest/blixt [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/jjwest/blixt" "work/ex/pr-58592/sources/master#f66e4697ae286985ddefc53c3a047614568458bb/gh/jjwest/blixt"` [INFO] [stderr] Cloning into 'work/ex/pr-58592/sources/master#f66e4697ae286985ddefc53c3a047614568458bb/gh/jjwest/blixt'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/jjwest/blixt" "work/ex/pr-58592/sources/try#c3b22200e6f5b70eb1f99ae6944d989ae17a458a/gh/jjwest/blixt"` [INFO] [stderr] Cloning into 'work/ex/pr-58592/sources/try#c3b22200e6f5b70eb1f99ae6944d989ae17a458a/gh/jjwest/blixt'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 475120a9c110f5af29990619697431ac3258d477 [INFO] sha for GitHub repo jjwest/blixt: 475120a9c110f5af29990619697431ac3258d477 [INFO] validating manifest of jjwest/blixt on toolchain master#f66e4697ae286985ddefc53c3a047614568458bb [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+f66e4697ae286985ddefc53c3a047614568458bb-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of jjwest/blixt on toolchain try#c3b22200e6f5b70eb1f99ae6944d989ae17a458a [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+c3b22200e6f5b70eb1f99ae6944d989ae17a458a-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing jjwest/blixt [INFO] finished frobbing jjwest/blixt [INFO] frobbed toml for jjwest/blixt written to work/ex/pr-58592/sources/master#f66e4697ae286985ddefc53c3a047614568458bb/gh/jjwest/blixt/Cargo.toml [INFO] started frobbing jjwest/blixt [INFO] finished frobbing jjwest/blixt [INFO] frobbed toml for jjwest/blixt written to work/ex/pr-58592/sources/try#c3b22200e6f5b70eb1f99ae6944d989ae17a458a/gh/jjwest/blixt/Cargo.toml [INFO] crate jjwest/blixt has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+f66e4697ae286985ddefc53c3a047614568458bb-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+c3b22200e6f5b70eb1f99ae6944d989ae17a458a-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking jjwest/blixt against master#f66e4697ae286985ddefc53c3a047614568458bb for pr-58592 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-58592/worker-1/master#f66e4697ae286985ddefc53c3a047614568458bb:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-58592/sources/master#f66e4697ae286985ddefc53c3a047614568458bb/gh/jjwest/blixt:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+f66e4697ae286985ddefc53c3a047614568458bb-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 4aa5971fa4723b1ff2194976615bdbda1d12f3e4eca421152a754498d3b27a35 [INFO] running `"docker" "start" "-a" "4aa5971fa4723b1ff2194976615bdbda1d12f3e4eca421152a754498d3b27a35"` [INFO] [stderr] warning: the cargo feature `edition` is now stable and is no longer necessary to be listed in the manifest [INFO] [stderr] Checking thread_local v0.3.4 [INFO] [stderr] Checking failure v0.1.0 [INFO] [stderr] Checking regex v0.2.2 [INFO] [stderr] Checking env_logger v0.4.3 [INFO] [stderr] Checking pretty_env_logger v0.1.1 [INFO] [stderr] Checking blixt v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning[E0170]: pattern binding `Field` is named the same as one of the variants of the type `ast::BinaryOpKind` [INFO] [stderr] --> src/typecheck.rs:180:13 [INFO] [stderr] | [INFO] [stderr] 180 | Field => unimplemented!(), [INFO] [stderr] | ^^^^^ help: to match on the variant, qualify the path: `ast::BinaryOpKind::Field` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `Field` [INFO] [stderr] --> src/typecheck.rs:180:13 [INFO] [stderr] | [INFO] [stderr] 180 | Field => unimplemented!(), [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_Field` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning[E0170]: pattern binding `Field` is named the same as one of the variants of the type `ast::BinaryOpKind` [INFO] [stderr] --> src/typecheck.rs:180:13 [INFO] [stderr] | [INFO] [stderr] 180 | Field => unimplemented!(), [INFO] [stderr] | ^^^^^ help: to match on the variant, qualify the path: `ast::BinaryOpKind::Field` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `Field` [INFO] [stderr] --> src/typecheck.rs:180:13 [INFO] [stderr] | [INFO] [stderr] 180 | Field => unimplemented!(), [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_Field` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] error[E0521]: borrowed data escapes outside of function [INFO] [stderr] --> src/interpreter.rs:232:19 [INFO] [stderr] | [INFO] [stderr] 229 | fn visit_ident(&mut self, node: &'a str) { [INFO] [stderr] | --------- [INFO] [stderr] | | [INFO] [stderr] | `self` is declared here, outside of the function body [INFO] [stderr] | `self` is a reference that is only valid in the function body [INFO] [stderr] ... [INFO] [stderr] 232 | let var = self [INFO] [stderr] | ___________________^ [INFO] [stderr] 233 | | .scope [INFO] [stderr] 234 | | .get_variable(&node) [INFO] [stderr] | |________________________________^ `self` escapes the function body here [INFO] [stderr] [INFO] [stderr] error[E0521]: borrowed data escapes outside of function [INFO] [stderr] --> src/interpreter.rs:259:19 [INFO] [stderr] | [INFO] [stderr] 255 | fn visit_assignment(&mut self, node: &'a Assignment) { [INFO] [stderr] | --------- [INFO] [stderr] | | [INFO] [stderr] | `self` is declared here, outside of the function body [INFO] [stderr] | `self` is a reference that is only valid in the function body [INFO] [stderr] ... [INFO] [stderr] 259 | let var = self [INFO] [stderr] | ___________________^ [INFO] [stderr] 260 | | .scope [INFO] [stderr] 261 | | .get_variable_mut(&node.ident) [INFO] [stderr] | |__________________________________________^ `self` escapes the function body here [INFO] [stderr] [INFO] [stderr] error[E0499]: cannot borrow `self.scope` as mutable more than once at a time [INFO] [stderr] --> src/interpreter.rs:362:23 [INFO] [stderr] | [INFO] [stderr] 47 | impl<'a, 'ctxt> Visitor<'a> for Interpreter<'a, 'ctxt> { [INFO] [stderr] | -- lifetime `'a` defined here [INFO] [stderr] ... [INFO] [stderr] 362 | let var = self.scope.get_variable_mut(&node.ident).unwrap(); [INFO] [stderr] | ^^^^^^^^^^------------------------------ [INFO] [stderr] | | [INFO] [stderr] | mutable borrow starts here in previous iteration of loop [INFO] [stderr] | argument requires that `self.scope` is borrowed for `'a` [INFO] [stderr] [INFO] [stderr] error[E0521]: borrowed data escapes outside of function [INFO] [stderr] --> src/interpreter.rs:362:23 [INFO] [stderr] | [INFO] [stderr] 354 | fn visit_for(&mut self, node: &'a For) { [INFO] [stderr] | --------- [INFO] [stderr] | | [INFO] [stderr] | `self` is declared here, outside of the function body [INFO] [stderr] | `self` is a reference that is only valid in the function body [INFO] [stderr] ... [INFO] [stderr] 362 | let var = self.scope.get_variable_mut(&node.ident).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `self` escapes the function body here [INFO] [stderr] [INFO] [stderr] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stderr] --> src/interpreter.rs:364:31 [INFO] [stderr] | [INFO] [stderr] 47 | impl<'a, 'ctxt> Visitor<'a> for Interpreter<'a, 'ctxt> { [INFO] [stderr] | -- lifetime `'a` defined here [INFO] [stderr] ... [INFO] [stderr] 362 | let var = self.scope.get_variable_mut(&node.ident).unwrap(); [INFO] [stderr] | ---------------------------------------- [INFO] [stderr] | | [INFO] [stderr] | first mutable borrow occurs here [INFO] [stderr] | argument requires that `self.scope` is borrowed for `'a` [INFO] [stderr] 363 | var.value = Value::Int(i); [INFO] [stderr] 364 | node.block.accept(self); [INFO] [stderr] | ^^^^ second mutable borrow occurs here [INFO] [stderr] [INFO] [stderr] error[E0499]: cannot borrow `self.scope` as mutable more than once at a time [INFO] [stderr] --> src/interpreter.rs:367:9 [INFO] [stderr] | [INFO] [stderr] 47 | impl<'a, 'ctxt> Visitor<'a> for Interpreter<'a, 'ctxt> { [INFO] [stderr] | -- lifetime `'a` defined here [INFO] [stderr] ... [INFO] [stderr] 362 | let var = self.scope.get_variable_mut(&node.ident).unwrap(); [INFO] [stderr] | ---------------------------------------- [INFO] [stderr] | | [INFO] [stderr] | first mutable borrow occurs here [INFO] [stderr] | argument requires that `self.scope` is borrowed for `'a` [INFO] [stderr] ... [INFO] [stderr] 367 | self.scope.pop_scope_level(); [INFO] [stderr] | ^^^^^^^^^^ second mutable borrow occurs here [INFO] [stderr] [INFO] [stderr] error[E0521]: borrowed data escapes outside of function [INFO] [stderr] --> src/interpreter.rs:232:19 [INFO] [stderr] | [INFO] [stderr] 229 | fn visit_ident(&mut self, node: &'a str) { [INFO] [stderr] | --------- [INFO] [stderr] | | [INFO] [stderr] | `self` is declared here, outside of the function body [INFO] [stderr] | `self` is a reference that is only valid in the function body [INFO] [stderr] ... [INFO] [stderr] 232 | let var = self [INFO] [stderr] | ___________________^ [INFO] [stderr] 233 | | .scope [INFO] [stderr] 234 | | .get_variable(&node) [INFO] [stderr] | |________________________________^ `self` escapes the function body here [INFO] [stderr] [INFO] [stderr] error[E0521]: borrowed data escapes outside of function [INFO] [stderr] --> src/interpreter.rs:259:19 [INFO] [stderr] | [INFO] [stderr] 255 | fn visit_assignment(&mut self, node: &'a Assignment) { [INFO] [stderr] | --------- [INFO] [stderr] | | [INFO] [stderr] | `self` is declared here, outside of the function body [INFO] [stderr] | `self` is a reference that is only valid in the function body [INFO] [stderr] ... [INFO] [stderr] 259 | let var = self [INFO] [stderr] | ___________________^ [INFO] [stderr] 260 | | .scope [INFO] [stderr] 261 | | .get_variable_mut(&node.ident) [INFO] [stderr] | |__________________________________________^ `self` escapes the function body here [INFO] [stderr] [INFO] [stderr] error[E0499]: cannot borrow `self.scope` as mutable more than once at a time [INFO] [stderr] --> src/interpreter.rs:362:23 [INFO] [stderr] | [INFO] [stderr] 47 | impl<'a, 'ctxt> Visitor<'a> for Interpreter<'a, 'ctxt> { [INFO] [stderr] | -- lifetime `'a` defined here [INFO] [stderr] ... [INFO] [stderr] 362 | let var = self.scope.get_variable_mut(&node.ident).unwrap(); [INFO] [stderr] | ^^^^^^^^^^------------------------------ [INFO] [stderr] | | [INFO] [stderr] | mutable borrow starts here in previous iteration of loop [INFO] [stderr] | argument requires that `self.scope` is borrowed for `'a` [INFO] [stderr] [INFO] [stderr] error[E0521]: borrowed data escapes outside of function [INFO] [stderr] --> src/interpreter.rs:362:23 [INFO] [stderr] | [INFO] [stderr] 354 | fn visit_for(&mut self, node: &'a For) { [INFO] [stderr] | --------- [INFO] [stderr] | | [INFO] [stderr] | `self` is declared here, outside of the function body [INFO] [stderr] | `self` is a reference that is only valid in the function body [INFO] [stderr] ... [INFO] [stderr] 362 | let var = self.scope.get_variable_mut(&node.ident).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `self` escapes the function body here [INFO] [stderr] [INFO] [stderr] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stderr] --> src/interpreter.rs:364:31 [INFO] [stderr] | [INFO] [stderr] 47 | impl<'a, 'ctxt> Visitor<'a> for Interpreter<'a, 'ctxt> { [INFO] [stderr] | -- lifetime `'a` defined here [INFO] [stderr] ... [INFO] [stderr] 362 | let var = self.scope.get_variable_mut(&node.ident).unwrap(); [INFO] [stderr] | ---------------------------------------- [INFO] [stderr] | | [INFO] [stderr] | first mutable borrow occurs here [INFO] [stderr] | argument requires that `self.scope` is borrowed for `'a` [INFO] [stderr] 363 | var.value = Value::Int(i); [INFO] [stderr] 364 | node.block.accept(self); [INFO] [stderr] | ^^^^ second mutable borrow occurs here [INFO] [stderr] [INFO] [stderr] error[E0499]: cannot borrow `self.scope` as mutable more than once at a time [INFO] [stderr] --> src/interpreter.rs:367:9 [INFO] [stderr] | [INFO] [stderr] 47 | impl<'a, 'ctxt> Visitor<'a> for Interpreter<'a, 'ctxt> { [INFO] [stderr] | -- lifetime `'a` defined here [INFO] [stderr] ... [INFO] [stderr] 362 | let var = self.scope.get_variable_mut(&node.ident).unwrap(); [INFO] [stderr] | ---------------------------------------- [INFO] [stderr] | | [INFO] [stderr] | first mutable borrow occurs here [INFO] [stderr] | argument requires that `self.scope` is borrowed for `'a` [INFO] [stderr] ... [INFO] [stderr] 367 | self.scope.pop_scope_level(); [INFO] [stderr] | ^^^^^^^^^^ second mutable borrow occurs here [INFO] [stderr] [INFO] [stderr] error[E0521]: borrowed data escapes outside of function [INFO] [stderr] --> src/typecheck.rs:237:15 [INFO] [stderr] | [INFO] [stderr] 235 | fn visit_ident(&mut self, node: &'a str) { [INFO] [stderr] | --------- [INFO] [stderr] | | [INFO] [stderr] | `self` is declared here, outside of the function body [INFO] [stderr] | `self` is a reference that is only valid in the function body [INFO] [stderr] 236 | trace!("Visiting ident"); [INFO] [stderr] 237 | match self.scope.get_variable(node) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `self` escapes the function body here [INFO] [stderr] [INFO] [stderr] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stderr] --> src/typecheck.rs:240:17 [INFO] [stderr] | [INFO] [stderr] 82 | impl<'a, 'ctxt> Visitor<'a> for Typechecker<'a, 'ctxt> { [INFO] [stderr] | -- lifetime `'a` defined here [INFO] [stderr] ... [INFO] [stderr] 237 | match self.scope.get_variable(node) { [INFO] [stderr] | ----------------------------- [INFO] [stderr] | | [INFO] [stderr] | first mutable borrow occurs here [INFO] [stderr] | argument requires that `self.scope` is borrowed for `'a` [INFO] [stderr] ... [INFO] [stderr] 240 | self.report_error(&format!("Undeclared variable '{}'", node)); [INFO] [stderr] | ^^^^ second mutable borrow occurs here [INFO] [stderr] [INFO] [stderr] error[E0521]: borrowed data escapes outside of function [INFO] [stderr] --> src/typecheck.rs:280:19 [INFO] [stderr] | [INFO] [stderr] 275 | fn visit_assignment(&mut self, node: &'a Assignment) { [INFO] [stderr] | --------- [INFO] [stderr] | | [INFO] [stderr] | `self` is declared here, outside of the function body [INFO] [stderr] | `self` is a reference that is only valid in the function body [INFO] [stderr] ... [INFO] [stderr] 280 | let lhs = self [INFO] [stderr] | ___________________^ [INFO] [stderr] 281 | | .scope [INFO] [stderr] 282 | | .get_variable(node.ident.as_str()) [INFO] [stderr] | |______________________________________________^ `self` escapes the function body here [INFO] [stderr] [INFO] [stderr] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stderr] --> src/typecheck.rs:286:19 [INFO] [stderr] | [INFO] [stderr] 82 | impl<'a, 'ctxt> Visitor<'a> for Typechecker<'a, 'ctxt> { [INFO] [stderr] | -- lifetime `'a` defined here [INFO] [stderr] ... [INFO] [stderr] 280 | let lhs = self [INFO] [stderr] | ___________________- [INFO] [stderr] | |___________________| [INFO] [stderr] | || [INFO] [stderr] 281 | || .scope [INFO] [stderr] | ||__________________- first mutable borrow occurs here [INFO] [stderr] 282 | | .get_variable(node.ident.as_str()) [INFO] [stderr] | |_______________________________________________- argument requires that `self.scope` is borrowed for `'a` [INFO] [stderr] ... [INFO] [stderr] 286 | let rhs = self.type_of(&node.value); [INFO] [stderr] | ^^^^ second mutable borrow occurs here [INFO] [stderr] [INFO] [stderr] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stderr] --> src/typecheck.rs:295:21 [INFO] [stderr] | [INFO] [stderr] 82 | impl<'a, 'ctxt> Visitor<'a> for Typechecker<'a, 'ctxt> { [INFO] [stderr] | -- lifetime `'a` defined here [INFO] [stderr] ... [INFO] [stderr] 280 | let lhs = self [INFO] [stderr] | ___________________- [INFO] [stderr] | |___________________| [INFO] [stderr] | || [INFO] [stderr] 281 | || .scope [INFO] [stderr] | ||__________________- first mutable borrow occurs here [INFO] [stderr] 282 | | .get_variable(node.ident.as_str()) [INFO] [stderr] | |_______________________________________________- argument requires that `self.scope` is borrowed for `'a` [INFO] [stderr] ... [INFO] [stderr] 295 | self.report_error(&format!( [INFO] [stderr] | ^^^^ second mutable borrow occurs here [INFO] [stderr] [INFO] [stderr] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stderr] --> src/typecheck.rs:302:17 [INFO] [stderr] | [INFO] [stderr] 82 | impl<'a, 'ctxt> Visitor<'a> for Typechecker<'a, 'ctxt> { [INFO] [stderr] | -- lifetime `'a` defined here [INFO] [stderr] ... [INFO] [stderr] 280 | let lhs = self [INFO] [stderr] | ___________________- [INFO] [stderr] | |___________________| [INFO] [stderr] | || [INFO] [stderr] 281 | || .scope [INFO] [stderr] | ||__________________- first mutable borrow occurs here [INFO] [stderr] 282 | | .get_variable(node.ident.as_str()) [INFO] [stderr] | |_______________________________________________- argument requires that `self.scope` is borrowed for `'a` [INFO] [stderr] ... [INFO] [stderr] 302 | self.report_error(&format!( [INFO] [stderr] | ^^^^ second mutable borrow occurs here [INFO] [stderr] [INFO] [stderr] error: aborting due to 12 previous errors [INFO] [stderr] [INFO] [stderr] Some errors occurred: E0170, E0499, E0521. [INFO] [stderr] For more information about an error, try `rustc --explain E0170`. [INFO] [stderr] error: Could not compile `blixt`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error[E0521]: borrowed data escapes outside of function [INFO] [stderr] --> src/typecheck.rs:237:15 [INFO] [stderr] | [INFO] [stderr] 235 | fn visit_ident(&mut self, node: &'a str) { [INFO] [stderr] | --------- [INFO] [stderr] | | [INFO] [stderr] | `self` is declared here, outside of the function body [INFO] [stderr] | `self` is a reference that is only valid in the function body [INFO] [stderr] 236 | trace!("Visiting ident"); [INFO] [stderr] 237 | match self.scope.get_variable(node) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `self` escapes the function body here [INFO] [stderr] [INFO] [stderr] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stderr] --> src/typecheck.rs:240:17 [INFO] [stderr] | [INFO] [stderr] 82 | impl<'a, 'ctxt> Visitor<'a> for Typechecker<'a, 'ctxt> { [INFO] [stderr] | -- lifetime `'a` defined here [INFO] [stderr] ... [INFO] [stderr] 237 | match self.scope.get_variable(node) { [INFO] [stderr] | ----------------------------- [INFO] [stderr] | | [INFO] [stderr] | first mutable borrow occurs here [INFO] [stderr] | argument requires that `self.scope` is borrowed for `'a` [INFO] [stderr] ... [INFO] [stderr] 240 | self.report_error(&format!("Undeclared variable '{}'", node)); [INFO] [stderr] | ^^^^ second mutable borrow occurs here [INFO] [stderr] [INFO] [stderr] error[E0521]: borrowed data escapes outside of function [INFO] [stderr] --> src/typecheck.rs:280:19 [INFO] [stderr] | [INFO] [stderr] 275 | fn visit_assignment(&mut self, node: &'a Assignment) { [INFO] [stderr] | --------- [INFO] [stderr] | | [INFO] [stderr] | `self` is declared here, outside of the function body [INFO] [stderr] | `self` is a reference that is only valid in the function body [INFO] [stderr] ... [INFO] [stderr] 280 | let lhs = self [INFO] [stderr] | ___________________^ [INFO] [stderr] 281 | | .scope [INFO] [stderr] 282 | | .get_variable(node.ident.as_str()) [INFO] [stderr] | |______________________________________________^ `self` escapes the function body here [INFO] [stderr] [INFO] [stderr] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stderr] --> src/typecheck.rs:286:19 [INFO] [stderr] | [INFO] [stderr] 82 | impl<'a, 'ctxt> Visitor<'a> for Typechecker<'a, 'ctxt> { [INFO] [stderr] | -- lifetime `'a` defined here [INFO] [stderr] ... [INFO] [stderr] 280 | let lhs = self [INFO] [stderr] | ___________________- [INFO] [stderr] | |___________________| [INFO] [stderr] | || [INFO] [stderr] 281 | || .scope [INFO] [stderr] | ||__________________- first mutable borrow occurs here [INFO] [stderr] 282 | | .get_variable(node.ident.as_str()) [INFO] [stderr] | |_______________________________________________- argument requires that `self.scope` is borrowed for `'a` [INFO] [stderr] ... [INFO] [stderr] 286 | let rhs = self.type_of(&node.value); [INFO] [stderr] | ^^^^ second mutable borrow occurs here [INFO] [stderr] [INFO] [stderr] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stderr] --> src/typecheck.rs:295:21 [INFO] [stderr] | [INFO] [stderr] 82 | impl<'a, 'ctxt> Visitor<'a> for Typechecker<'a, 'ctxt> { [INFO] [stderr] | -- lifetime `'a` defined here [INFO] [stderr] ... [INFO] [stderr] 280 | let lhs = self [INFO] [stderr] | ___________________- [INFO] [stderr] | |___________________| [INFO] [stderr] | || [INFO] [stderr] 281 | || .scope [INFO] [stderr] | ||__________________- first mutable borrow occurs here [INFO] [stderr] 282 | | .get_variable(node.ident.as_str()) [INFO] [stderr] | |_______________________________________________- argument requires that `self.scope` is borrowed for `'a` [INFO] [stderr] ... [INFO] [stderr] 295 | self.report_error(&format!( [INFO] [stderr] | ^^^^ second mutable borrow occurs here [INFO] [stderr] [INFO] [stderr] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stderr] --> src/typecheck.rs:302:17 [INFO] [stderr] | [INFO] [stderr] 82 | impl<'a, 'ctxt> Visitor<'a> for Typechecker<'a, 'ctxt> { [INFO] [stderr] | -- lifetime `'a` defined here [INFO] [stderr] ... [INFO] [stderr] 280 | let lhs = self [INFO] [stderr] | ___________________- [INFO] [stderr] | |___________________| [INFO] [stderr] | || [INFO] [stderr] 281 | || .scope [INFO] [stderr] | ||__________________- first mutable borrow occurs here [INFO] [stderr] 282 | | .get_variable(node.ident.as_str()) [INFO] [stderr] | |_______________________________________________- argument requires that `self.scope` is borrowed for `'a` [INFO] [stderr] ... [INFO] [stderr] 302 | self.report_error(&format!( [INFO] [stderr] | ^^^^ second mutable borrow occurs here [INFO] [stderr] [INFO] [stderr] error: aborting due to 12 previous errors [INFO] [stderr] [INFO] [stderr] Some errors occurred: E0170, E0499, E0521. [INFO] [stderr] For more information about an error, try `rustc --explain E0170`. [INFO] [stderr] error: Could not compile `blixt`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "4aa5971fa4723b1ff2194976615bdbda1d12f3e4eca421152a754498d3b27a35"` [INFO] running `"docker" "rm" "-f" "4aa5971fa4723b1ff2194976615bdbda1d12f3e4eca421152a754498d3b27a35"` [INFO] [stdout] 4aa5971fa4723b1ff2194976615bdbda1d12f3e4eca421152a754498d3b27a35