[INFO] fetching crate cplex_dynamic 0.1.1...
[INFO] testing cplex_dynamic-0.1.1 against master#1871252fc8bb672d40787e67404e6eaae7059369 for pr-125151
[INFO] extracting crate cplex_dynamic 0.1.1 into /workspace/builds/worker-3-tc1/source
[INFO] validating manifest of crates.io crate cplex_dynamic 0.1.1 on toolchain 1871252fc8bb672d40787e67404e6eaae7059369
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate cplex_dynamic 0.1.1
[INFO] finished tweaking crates.io crate cplex_dynamic 0.1.1
[INFO] tweaked toml for crates.io crate cplex_dynamic 0.1.1 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] crate crates.io crate cplex_dynamic 0.1.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded dlopen_derive v0.1.4
[INFO] [stderr]   Downloaded dlopen v0.1.8
[INFO] [stderr]   Downloaded libc v0.2.134
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2b7b892d01dec9ecf0d05f929141dc8ab80219a45d4ae3b2721499645c3be9fd
[INFO] running `Command { std: "docker" "start" "-a" "2b7b892d01dec9ecf0d05f929141dc8ab80219a45d4ae3b2721499645c3be9fd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2b7b892d01dec9ecf0d05f929141dc8ab80219a45d4ae3b2721499645c3be9fd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2b7b892d01dec9ecf0d05f929141dc8ab80219a45d4ae3b2721499645c3be9fd", kill_on_drop: false }`
[INFO] [stdout] 2b7b892d01dec9ecf0d05f929141dc8ab80219a45d4ae3b2721499645c3be9fd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fb56b5e3cce8068b9a8fc6337daa4596ad3ae44bd61115a1d62c8210f96cae76
[INFO] running `Command { std: "docker" "start" "-a" "fb56b5e3cce8068b9a8fc6337daa4596ad3ae44bd61115a1d62c8210f96cae76", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling libc v0.2.134
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]    Compiling const-cstr v0.3.0
[INFO] [stderr]    Compiling glob v0.3.0
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]    Compiling dlopen_derive v0.1.4
[INFO] [stderr]    Compiling dlopen v0.1.8
[INFO] [stderr]    Compiling cplex_dynamic v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 183 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:248:9
[INFO] [stdout]     |
[INFO] [stdout] 248 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `index` is never read
[INFO] [stdout]    --> src/load.rs:464:5
[INFO] [stdout]     |
[INFO] [stdout] 463 | pub struct Constraint {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 464 |     index: Option<usize>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Constraint` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXopenCPLEX` should have a snake case name
[INFO] [stdout]   --> src/load.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     CPXopenCPLEX: fn(status: *mut c_int) -> *mut CEnv,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxopen_cplex`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXcreateprob` should have a snake case name
[INFO] [stdout]   --> src/load.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     CPXcreateprob: fn(env: *mut CEnv, status: *mut c_int, name: *const c_char) -> *mut CProblem,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxcreateprob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXsetintparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     CPXsetintparam: fn(env: *mut CEnv, param: c_int, value: c_int) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsetintparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXsetdblparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     CPXsetdblparam: fn(env: *mut CEnv, param: c_int, value: c_double) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsetdblparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetintparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     CPXgetintparam: fn(env: *mut CEnv, param: c_int, value: *mut c_int) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetintparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetdblparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     CPXgetdblparam: fn(env: *mut CEnv, param: c_int, value: *mut c_double) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetdblparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgprobtype` should have a snake case name
[INFO] [stdout]   --> src/load.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     CPXchgprobtype: fn(env: *mut CEnv, lp: *mut CProblem, ptype: c_int) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgprobtype`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXnewcols` should have a snake case name
[INFO] [stdout]   --> src/load.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     CPXnewcols: fn(
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxnewcols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddrows` should have a snake case name
[INFO] [stdout]   --> src/load.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |     CPXaddrows: fn(
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddrows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddcols` should have a snake case name
[INFO] [stdout]   --> src/load.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     CPXaddcols: fn(
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddcols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddlazyconstraints` should have a snake case name
[INFO] [stdout]    --> src/load.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     CPXaddlazyconstraints: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddlazyconstraints`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetnumcols` should have a snake case name
[INFO] [stdout]    --> src/load.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     CPXgetnumcols: fn(env: *const CEnv, lp: *mut CProblem) -> CInt,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetnumcols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgobj` should have a snake case name
[INFO] [stdout]    --> src/load.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     CPXchgobj: fn(
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `cpxchgobj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgqpcoef` should have a snake case name
[INFO] [stdout]    --> src/load.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 128 |     CPXchgqpcoef:
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgqpcoef`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetqpcoef` should have a snake case name
[INFO] [stdout]    --> src/load.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 |     CPXgetqpcoef: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetqpcoef`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgobjsen` should have a snake case name
[INFO] [stdout]    --> src/load.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     CPXchgobjsen: fn(env: *mut CEnv, lp: *mut CProblem, maxormin: c_int) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgobjsen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXlpopt` should have a snake case name
[INFO] [stdout]    --> src/load.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     CPXlpopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to snake case: `cpxlpopt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXmipopt` should have a snake case name
[INFO] [stdout]    --> src/load.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 |     CPXmipopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `cpxmipopt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetstat` should have a snake case name
[INFO] [stdout]    --> src/load.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     CPXgetstat: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetstat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetobjval` should have a snake case name
[INFO] [stdout]    --> src/load.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 146 |     CPXgetobjval: fn(env: *mut CEnv, lp: *mut CProblem, objval: *mut c_double) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetobjval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetx` should have a snake case name
[INFO] [stdout]    --> src/load.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 147 |     CPXgetx:
[INFO] [stdout]     |     ^^^^^^^ help: convert the identifier to snake case: `cpxgetx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXsolution` should have a snake case name
[INFO] [stdout]    --> src/load.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     CPXsolution: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsolution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddmipstarts` should have a snake case name
[INFO] [stdout]    --> src/load.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     CPXaddmipstarts: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddmipstarts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgeterrorstring` should have a snake case name
[INFO] [stdout]    --> src/load.rs:172:5
[INFO] [stdout]     |
[INFO] [stdout] 172 |     CPXgeterrorstring: fn(env: *mut CEnv, errcode: c_int, buff: *mut c_char) -> *mut c_char,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgeterrorstring`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXwriteprob` should have a snake case name
[INFO] [stdout]    --> src/load.rs:173:5
[INFO] [stdout]     |
[INFO] [stdout] 173 |     CPXwriteprob:
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxwriteprob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXcloseCPLEX` should have a snake case name
[INFO] [stdout]    --> src/load.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 |     CPXcloseCPLEX: fn(env: *const *mut CEnv) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxclose_cplex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXfreeprob` should have a snake case name
[INFO] [stdout]    --> src/load.rs:177:5
[INFO] [stdout]     |
[INFO] [stdout] 177 |     CPXfreeprob: fn(env: *mut CEnv, lp: *const *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^ help: convert the identifier to snake case: `cpxfreeprob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXqpopt` should have a snake case name
[INFO] [stdout]    --> src/load.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     CPXqpopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to snake case: `cpxqpopt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:693:50
[INFO] [stdout]     |
[INFO] [stdout] 693 |             CString::new(name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout]     = note: `#[warn(temporary_cstring_as_ptr)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:727:55
[INFO] [stdout]     |
[INFO] [stdout] 727 |             &CString::new(var.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:772:55
[INFO] [stdout]     |
[INFO] [stdout] 772 |             &CString::new(con.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:815:55
[INFO] [stdout]     |
[INFO] [stdout] 815 |             &CString::new(con.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:937:57
[INFO] [stdout]     |
[INFO] [stdout] 937 |             CString::new(name.into().as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]     --> src/load.rs:1005:51
[INFO] [stdout]      |
[INFO] [stdout] 1005 |                 CString::new("lpex1.lp").unwrap().as_ptr(),
[INFO] [stdout]      |                 --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]      |
[INFO] [stdout]      = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]      = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]     --> src/load.rs:1021:51
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                 CString::new("lpex1.lp").unwrap().as_ptr(),
[INFO] [stdout]      |                 --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]      |
[INFO] [stdout]      = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]      = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 40 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.34s
[INFO] running `Command { std: "docker" "inspect" "fb56b5e3cce8068b9a8fc6337daa4596ad3ae44bd61115a1d62c8210f96cae76", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb56b5e3cce8068b9a8fc6337daa4596ad3ae44bd61115a1d62c8210f96cae76", kill_on_drop: false }`
[INFO] [stdout] fb56b5e3cce8068b9a8fc6337daa4596ad3ae44bd61115a1d62c8210f96cae76
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3d3c50eb5418393d4ce32ab2f36846bd856fbe9efed973045f052acd3f088408
[INFO] running `Command { std: "docker" "start" "-a" "3d3c50eb5418393d4ce32ab2f36846bd856fbe9efed973045f052acd3f088408", kill_on_drop: false }`
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 183 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:248:9
[INFO] [stdout]     |
[INFO] [stdout] 248 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `index` is never read
[INFO] [stdout]    --> src/load.rs:464:5
[INFO] [stdout]     |
[INFO] [stdout] 463 | pub struct Constraint {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 464 |     index: Option<usize>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Constraint` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXopenCPLEX` should have a snake case name
[INFO] [stdout]   --> src/load.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     CPXopenCPLEX: fn(status: *mut c_int) -> *mut CEnv,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxopen_cplex`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXcreateprob` should have a snake case name
[INFO] [stdout]   --> src/load.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     CPXcreateprob: fn(env: *mut CEnv, status: *mut c_int, name: *const c_char) -> *mut CProblem,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxcreateprob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXsetintparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     CPXsetintparam: fn(env: *mut CEnv, param: c_int, value: c_int) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsetintparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXsetdblparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     CPXsetdblparam: fn(env: *mut CEnv, param: c_int, value: c_double) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsetdblparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetintparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     CPXgetintparam: fn(env: *mut CEnv, param: c_int, value: *mut c_int) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetintparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetdblparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     CPXgetdblparam: fn(env: *mut CEnv, param: c_int, value: *mut c_double) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetdblparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgprobtype` should have a snake case name
[INFO] [stdout]   --> src/load.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     CPXchgprobtype: fn(env: *mut CEnv, lp: *mut CProblem, ptype: c_int) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgprobtype`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXnewcols` should have a snake case name
[INFO] [stdout]   --> src/load.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     CPXnewcols: fn(
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxnewcols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddrows` should have a snake case name
[INFO] [stdout]   --> src/load.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |     CPXaddrows: fn(
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddrows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddcols` should have a snake case name
[INFO] [stdout]   --> src/load.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     CPXaddcols: fn(
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddcols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddlazyconstraints` should have a snake case name
[INFO] [stdout]    --> src/load.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     CPXaddlazyconstraints: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddlazyconstraints`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetnumcols` should have a snake case name
[INFO] [stdout]    --> src/load.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     CPXgetnumcols: fn(env: *const CEnv, lp: *mut CProblem) -> CInt,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetnumcols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgobj` should have a snake case name
[INFO] [stdout]    --> src/load.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     CPXchgobj: fn(
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `cpxchgobj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgqpcoef` should have a snake case name
[INFO] [stdout]    --> src/load.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 128 |     CPXchgqpcoef:
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgqpcoef`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetqpcoef` should have a snake case name
[INFO] [stdout]    --> src/load.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 |     CPXgetqpcoef: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetqpcoef`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgobjsen` should have a snake case name
[INFO] [stdout]    --> src/load.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     CPXchgobjsen: fn(env: *mut CEnv, lp: *mut CProblem, maxormin: c_int) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgobjsen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXlpopt` should have a snake case name
[INFO] [stdout]    --> src/load.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     CPXlpopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to snake case: `cpxlpopt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXmipopt` should have a snake case name
[INFO] [stdout]    --> src/load.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 |     CPXmipopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `cpxmipopt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetstat` should have a snake case name
[INFO] [stdout]    --> src/load.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     CPXgetstat: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetstat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetobjval` should have a snake case name
[INFO] [stdout]    --> src/load.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 146 |     CPXgetobjval: fn(env: *mut CEnv, lp: *mut CProblem, objval: *mut c_double) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetobjval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetx` should have a snake case name
[INFO] [stdout]    --> src/load.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 147 |     CPXgetx:
[INFO] [stdout]     |     ^^^^^^^ help: convert the identifier to snake case: `cpxgetx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXsolution` should have a snake case name
[INFO] [stdout]    --> src/load.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     CPXsolution: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsolution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddmipstarts` should have a snake case name
[INFO] [stdout]    --> src/load.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     CPXaddmipstarts: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddmipstarts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling cplex_dynamic v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: method `CPXgeterrorstring` should have a snake case name
[INFO] [stdout]    --> src/load.rs:172:5
[INFO] [stdout]     |
[INFO] [stdout] 172 |     CPXgeterrorstring: fn(env: *mut CEnv, errcode: c_int, buff: *mut c_char) -> *mut c_char,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgeterrorstring`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXwriteprob` should have a snake case name
[INFO] [stdout]    --> src/load.rs:173:5
[INFO] [stdout]     |
[INFO] [stdout] 173 |     CPXwriteprob:
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxwriteprob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXcloseCPLEX` should have a snake case name
[INFO] [stdout]    --> src/load.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 |     CPXcloseCPLEX: fn(env: *const *mut CEnv) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxclose_cplex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXfreeprob` should have a snake case name
[INFO] [stdout]    --> src/load.rs:177:5
[INFO] [stdout]     |
[INFO] [stdout] 177 |     CPXfreeprob: fn(env: *mut CEnv, lp: *const *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^ help: convert the identifier to snake case: `cpxfreeprob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXqpopt` should have a snake case name
[INFO] [stdout]    --> src/load.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     CPXqpopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to snake case: `cpxqpopt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:693:50
[INFO] [stdout]     |
[INFO] [stdout] 693 |             CString::new(name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout]     = note: `#[warn(temporary_cstring_as_ptr)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:727:55
[INFO] [stdout]     |
[INFO] [stdout] 727 |             &CString::new(var.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:772:55
[INFO] [stdout]     |
[INFO] [stdout] 772 |             &CString::new(con.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:815:55
[INFO] [stdout]     |
[INFO] [stdout] 815 |             &CString::new(con.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:937:57
[INFO] [stdout]     |
[INFO] [stdout] 937 |             CString::new(name.into().as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]     --> src/load.rs:1005:51
[INFO] [stdout]      |
[INFO] [stdout] 1005 |                 CString::new("lpex1.lp").unwrap().as_ptr(),
[INFO] [stdout]      |                 --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]      |
[INFO] [stdout]      = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]      = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]     --> src/load.rs:1021:51
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                 CString::new("lpex1.lp").unwrap().as_ptr(),
[INFO] [stdout]      |                 --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]      |
[INFO] [stdout]      = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]      = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 40 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 183 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:248:9
[INFO] [stdout]     |
[INFO] [stdout] 248 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `index` is never read
[INFO] [stdout]    --> src/load.rs:464:5
[INFO] [stdout]     |
[INFO] [stdout] 463 | pub struct Constraint {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 464 |     index: Option<usize>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Constraint` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXopenCPLEX` should have a snake case name
[INFO] [stdout]   --> src/load.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     CPXopenCPLEX: fn(status: *mut c_int) -> *mut CEnv,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxopen_cplex`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXcreateprob` should have a snake case name
[INFO] [stdout]   --> src/load.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     CPXcreateprob: fn(env: *mut CEnv, status: *mut c_int, name: *const c_char) -> *mut CProblem,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxcreateprob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXsetintparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     CPXsetintparam: fn(env: *mut CEnv, param: c_int, value: c_int) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsetintparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXsetdblparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     CPXsetdblparam: fn(env: *mut CEnv, param: c_int, value: c_double) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsetdblparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetintparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     CPXgetintparam: fn(env: *mut CEnv, param: c_int, value: *mut c_int) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetintparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetdblparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     CPXgetdblparam: fn(env: *mut CEnv, param: c_int, value: *mut c_double) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetdblparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgprobtype` should have a snake case name
[INFO] [stdout]   --> src/load.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     CPXchgprobtype: fn(env: *mut CEnv, lp: *mut CProblem, ptype: c_int) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgprobtype`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXnewcols` should have a snake case name
[INFO] [stdout]   --> src/load.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     CPXnewcols: fn(
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxnewcols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddrows` should have a snake case name
[INFO] [stdout]   --> src/load.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |     CPXaddrows: fn(
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddrows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddcols` should have a snake case name
[INFO] [stdout]   --> src/load.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     CPXaddcols: fn(
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddcols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddlazyconstraints` should have a snake case name
[INFO] [stdout]    --> src/load.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     CPXaddlazyconstraints: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddlazyconstraints`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetnumcols` should have a snake case name
[INFO] [stdout]    --> src/load.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     CPXgetnumcols: fn(env: *const CEnv, lp: *mut CProblem) -> CInt,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetnumcols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgobj` should have a snake case name
[INFO] [stdout]    --> src/load.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     CPXchgobj: fn(
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `cpxchgobj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgqpcoef` should have a snake case name
[INFO] [stdout]    --> src/load.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 128 |     CPXchgqpcoef:
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgqpcoef`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetqpcoef` should have a snake case name
[INFO] [stdout]    --> src/load.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 |     CPXgetqpcoef: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetqpcoef`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgobjsen` should have a snake case name
[INFO] [stdout]    --> src/load.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     CPXchgobjsen: fn(env: *mut CEnv, lp: *mut CProblem, maxormin: c_int) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgobjsen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXlpopt` should have a snake case name
[INFO] [stdout]    --> src/load.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     CPXlpopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to snake case: `cpxlpopt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXmipopt` should have a snake case name
[INFO] [stdout]    --> src/load.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 |     CPXmipopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `cpxmipopt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetstat` should have a snake case name
[INFO] [stdout]    --> src/load.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     CPXgetstat: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetstat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetobjval` should have a snake case name
[INFO] [stdout]    --> src/load.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 146 |     CPXgetobjval: fn(env: *mut CEnv, lp: *mut CProblem, objval: *mut c_double) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetobjval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetx` should have a snake case name
[INFO] [stdout]    --> src/load.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 147 |     CPXgetx:
[INFO] [stdout]     |     ^^^^^^^ help: convert the identifier to snake case: `cpxgetx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXsolution` should have a snake case name
[INFO] [stdout]    --> src/load.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     CPXsolution: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsolution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddmipstarts` should have a snake case name
[INFO] [stdout]    --> src/load.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     CPXaddmipstarts: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddmipstarts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgeterrorstring` should have a snake case name
[INFO] [stdout]    --> src/load.rs:172:5
[INFO] [stdout]     |
[INFO] [stdout] 172 |     CPXgeterrorstring: fn(env: *mut CEnv, errcode: c_int, buff: *mut c_char) -> *mut c_char,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgeterrorstring`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXwriteprob` should have a snake case name
[INFO] [stdout]    --> src/load.rs:173:5
[INFO] [stdout]     |
[INFO] [stdout] 173 |     CPXwriteprob:
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxwriteprob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXcloseCPLEX` should have a snake case name
[INFO] [stdout]    --> src/load.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 |     CPXcloseCPLEX: fn(env: *const *mut CEnv) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxclose_cplex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXfreeprob` should have a snake case name
[INFO] [stdout]    --> src/load.rs:177:5
[INFO] [stdout]     |
[INFO] [stdout] 177 |     CPXfreeprob: fn(env: *mut CEnv, lp: *const *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^ help: convert the identifier to snake case: `cpxfreeprob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXqpopt` should have a snake case name
[INFO] [stdout]    --> src/load.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     CPXqpopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to snake case: `cpxqpopt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:693:50
[INFO] [stdout]     |
[INFO] [stdout] 693 |             CString::new(name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout]     = note: `#[warn(temporary_cstring_as_ptr)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:727:55
[INFO] [stdout]     |
[INFO] [stdout] 727 |             &CString::new(var.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:772:55
[INFO] [stdout]     |
[INFO] [stdout] 772 |             &CString::new(con.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:815:55
[INFO] [stdout]     |
[INFO] [stdout] 815 |             &CString::new(con.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:937:57
[INFO] [stdout]     |
[INFO] [stdout] 937 |             CString::new(name.into().as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]     --> src/load.rs:1005:51
[INFO] [stdout]      |
[INFO] [stdout] 1005 |                 CString::new("lpex1.lp").unwrap().as_ptr(),
[INFO] [stdout]      |                 --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]      |
[INFO] [stdout]      = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]      = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]     --> src/load.rs:1021:51
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                 CString::new("lpex1.lp").unwrap().as_ptr(),
[INFO] [stdout]      |                 --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]      |
[INFO] [stdout]      = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]      = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 40 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.65s
[INFO] running `Command { std: "docker" "inspect" "3d3c50eb5418393d4ce32ab2f36846bd856fbe9efed973045f052acd3f088408", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d3c50eb5418393d4ce32ab2f36846bd856fbe9efed973045f052acd3f088408", kill_on_drop: false }`
[INFO] [stdout] 3d3c50eb5418393d4ce32ab2f36846bd856fbe9efed973045f052acd3f088408
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] a09c23a6e5e70793d4874d67fb873aa9b9b478772fd8cf0e878c552f8bba074c
[INFO] running `Command { std: "docker" "start" "-a" "a09c23a6e5e70793d4874d67fb873aa9b9b478772fd8cf0e878c552f8bba074c", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> src/load.rs:183:5
[INFO] [stderr]     |
[INFO] [stderr] 183 |     unsafe {
[INFO] [stderr]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> src/load.rs:248:9
[INFO] [stderr]     |
[INFO] [stderr] 248 |         unsafe {
[INFO] [stderr]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> src/load.rs:278:9
[INFO] [stderr]     |
[INFO] [stderr] 278 |         unsafe {
[INFO] [stderr]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]    --> src/load.rs:299:9
[INFO] [stderr]     |
[INFO] [stderr] 299 |         unsafe {
[INFO] [stderr]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: field `index` is never read
[INFO] [stderr]    --> src/load.rs:464:5
[INFO] [stderr]     |
[INFO] [stderr] 463 | pub struct Constraint {
[INFO] [stderr]     |            ---------- field in this struct
[INFO] [stderr] 464 |     index: Option<usize>,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Constraint` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXopenCPLEX` should have a snake case name
[INFO] [stderr]   --> src/load.rs:60:5
[INFO] [stderr]    |
[INFO] [stderr] 60 |     CPXopenCPLEX: fn(status: *mut c_int) -> *mut CEnv,
[INFO] [stderr]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxopen_cplex`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXcreateprob` should have a snake case name
[INFO] [stderr]   --> src/load.rs:61:5
[INFO] [stderr]    |
[INFO] [stderr] 61 |     CPXcreateprob: fn(env: *mut CEnv, status: *mut c_int, name: *const c_char) -> *mut CProblem,
[INFO] [stderr]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxcreateprob`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXsetintparam` should have a snake case name
[INFO] [stderr]   --> src/load.rs:62:5
[INFO] [stderr]    |
[INFO] [stderr] 62 |     CPXsetintparam: fn(env: *mut CEnv, param: c_int, value: c_int) -> c_int,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsetintparam`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXsetdblparam` should have a snake case name
[INFO] [stderr]   --> src/load.rs:63:5
[INFO] [stderr]    |
[INFO] [stderr] 63 |     CPXsetdblparam: fn(env: *mut CEnv, param: c_int, value: c_double) -> c_int,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsetdblparam`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXgetintparam` should have a snake case name
[INFO] [stderr]   --> src/load.rs:64:5
[INFO] [stderr]    |
[INFO] [stderr] 64 |     CPXgetintparam: fn(env: *mut CEnv, param: c_int, value: *mut c_int) -> c_int,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetintparam`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXgetdblparam` should have a snake case name
[INFO] [stdout] 
[INFO] [stderr]   --> src/load.rs:65:5
[INFO] [stdout] running 0 tests
[INFO] [stderr]    |
[INFO] [stdout] 
[INFO] [stderr] 65 |     CPXgetdblparam: fn(env: *mut CEnv, param: c_int, value: *mut c_double) -> c_int,
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetdblparam`
[INFO] [stdout] 
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXchgprobtype` should have a snake case name
[INFO] [stderr]   --> src/load.rs:66:5
[INFO] [stderr]    |
[INFO] [stderr] 66 |     CPXchgprobtype: fn(env: *mut CEnv, lp: *mut CProblem, ptype: c_int) -> c_int,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgprobtype`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXnewcols` should have a snake case name
[INFO] [stderr]   --> src/load.rs:68:5
[INFO] [stderr]    |
[INFO] [stderr] 68 |     CPXnewcols: fn(
[INFO] [stderr]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxnewcols`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXaddrows` should have a snake case name
[INFO] [stderr]   --> src/load.rs:78:5
[INFO] [stderr]    |
[INFO] [stderr] 78 |     CPXaddrows: fn(
[INFO] [stderr]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddrows`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXaddcols` should have a snake case name
[INFO] [stderr]   --> src/load.rs:92:5
[INFO] [stderr]    |
[INFO] [stderr] 92 |     CPXaddcols: fn(
[INFO] [stderr]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddcols`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXaddlazyconstraints` should have a snake case name
[INFO] [stderr]    --> src/load.rs:105:5
[INFO] [stderr]     |
[INFO] [stderr] 105 |     CPXaddlazyconstraints: fn(
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddlazyconstraints`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXgetnumcols` should have a snake case name
[INFO] [stderr]    --> src/load.rs:118:5
[INFO] [stderr]     |
[INFO] [stderr] 118 |     CPXgetnumcols: fn(env: *const CEnv, lp: *mut CProblem) -> CInt,
[INFO] [stderr]     |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetnumcols`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXchgobj` should have a snake case name
[INFO] [stderr]    --> src/load.rs:120:5
[INFO] [stderr]     |
[INFO] [stderr] 120 |     CPXchgobj: fn(
[INFO] [stderr]     |     ^^^^^^^^^ help: convert the identifier to snake case: `cpxchgobj`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXchgqpcoef` should have a snake case name
[INFO] [stderr]    --> src/load.rs:128:5
[INFO] [stderr]     |
[INFO] [stderr] 128 |     CPXchgqpcoef:
[INFO] [stderr]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgqpcoef`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXgetqpcoef` should have a snake case name
[INFO] [stderr]    --> src/load.rs:132:5
[INFO] [stderr]     |
[INFO] [stderr] 132 |     CPXgetqpcoef: fn(
[INFO] [stderr]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetqpcoef`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXchgobjsen` should have a snake case name
[INFO] [stderr]    --> src/load.rs:140:5
[INFO] [stderr]     |
[INFO] [stderr] 140 |     CPXchgobjsen: fn(env: *mut CEnv, lp: *mut CProblem, maxormin: c_int) -> c_int,
[INFO] [stderr]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgobjsen`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXlpopt` should have a snake case name
[INFO] [stderr]    --> src/load.rs:142:5
[INFO] [stderr]     |
[INFO] [stderr] 142 |     CPXlpopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stderr]     |     ^^^^^^^^ help: convert the identifier to snake case: `cpxlpopt`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXmipopt` should have a snake case name
[INFO] [stderr]    --> src/load.rs:143:5
[INFO] [stderr]     |
[INFO] [stderr] 143 |     CPXmipopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stderr]     |     ^^^^^^^^^ help: convert the identifier to snake case: `cpxmipopt`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXgetstat` should have a snake case name
[INFO] [stderr]    --> src/load.rs:145:5
[INFO] [stderr]     |
[INFO] [stderr] 145 |     CPXgetstat: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stderr]     |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetstat`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXgetobjval` should have a snake case name
[INFO] [stderr]    --> src/load.rs:146:5
[INFO] [stderr]     |
[INFO] [stderr] 146 |     CPXgetobjval: fn(env: *mut CEnv, lp: *mut CProblem, objval: *mut c_double) -> c_int,
[INFO] [stderr]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetobjval`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXgetx` should have a snake case name
[INFO] [stderr]    --> src/load.rs:147:5
[INFO] [stderr]     |
[INFO] [stderr] 147 |     CPXgetx:
[INFO] [stderr]     |     ^^^^^^^ help: convert the identifier to snake case: `cpxgetx`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXsolution` should have a snake case name
[INFO] [stderr]    --> src/load.rs:149:5
[INFO] [stderr]     |
[INFO] [stderr] 149 |     CPXsolution: fn(
[INFO] [stderr]     |     ^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsolution`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXaddmipstarts` should have a snake case name
[INFO] [stderr]    --> src/load.rs:160:5
[INFO] [stderr]     |
[INFO] [stderr] 160 |     CPXaddmipstarts: fn(
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddmipstarts`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXgeterrorstring` should have a snake case name
[INFO] [stderr]    --> src/load.rs:172:5
[INFO] [stderr]     |
[INFO] [stderr] 172 |     CPXgeterrorstring: fn(env: *mut CEnv, errcode: c_int, buff: *mut c_char) -> *mut c_char,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgeterrorstring`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXwriteprob` should have a snake case name
[INFO] [stderr]    --> src/load.rs:173:5
[INFO] [stderr]     |
[INFO] [stderr] 173 |     CPXwriteprob:
[INFO] [stderr]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxwriteprob`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXcloseCPLEX` should have a snake case name
[INFO] [stderr]    --> src/load.rs:176:5
[INFO] [stderr]     |
[INFO] [stderr] 176 |     CPXcloseCPLEX: fn(env: *const *mut CEnv) -> c_int,
[INFO] [stderr]     |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxclose_cplex`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXfreeprob` should have a snake case name
[INFO] [stderr]    --> src/load.rs:177:5
[INFO] [stderr]     |
[INFO] [stderr] 177 |     CPXfreeprob: fn(env: *mut CEnv, lp: *const *mut CProblem) -> c_int,
[INFO] [stderr]     |     ^^^^^^^^^^^ help: convert the identifier to snake case: `cpxfreeprob`
[INFO] [stderr] 
[INFO] [stderr] warning: method `CPXqpopt` should have a snake case name
[INFO] [stderr]    --> src/load.rs:179:5
[INFO] [stderr]     |
[INFO] [stderr] 179 |     CPXqpopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stderr]     |     ^^^^^^^^ help: convert the identifier to snake case: `cpxqpopt`
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/load.rs:693:50
[INFO] [stderr]     |
[INFO] [stderr] 693 |             CString::new(name.as_str()).unwrap().as_ptr(),
[INFO] [stderr]     |             ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |             |
[INFO] [stderr]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr]     = note: `#[warn(temporary_cstring_as_ptr)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/load.rs:727:55
[INFO] [stderr]     |
[INFO] [stderr] 727 |             &CString::new(var.name.as_str()).unwrap().as_ptr(),
[INFO] [stderr]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |              |
[INFO] [stderr]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/load.rs:772:55
[INFO] [stderr]     |
[INFO] [stderr] 772 |             &CString::new(con.name.as_str()).unwrap().as_ptr(),
[INFO] [stderr]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |              |
[INFO] [stderr]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/load.rs:815:55
[INFO] [stderr]     |
[INFO] [stderr] 815 |             &CString::new(con.name.as_str()).unwrap().as_ptr(),
[INFO] [stderr]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |              |
[INFO] [stderr]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/load.rs:937:57
[INFO] [stderr]     |
[INFO] [stderr] 937 |             CString::new(name.into().as_str()).unwrap().as_ptr(),
[INFO] [stderr]     |             ------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |             |
[INFO] [stderr]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]     --> src/load.rs:1005:51
[INFO] [stderr]      |
[INFO] [stderr] 1005 |                 CString::new("lpex1.lp").unwrap().as_ptr(),
[INFO] [stderr]      |                 --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]      |                 |
[INFO] [stderr]      |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]      |
[INFO] [stderr]      = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]      = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]     --> src/load.rs:1021:51
[INFO] [stderr]      |
[INFO] [stderr] 1021 |                 CString::new("lpex1.lp").unwrap().as_ptr(),
[INFO] [stderr]      |                 --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]      |                 |
[INFO] [stderr]      |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]      |
[INFO] [stderr]      = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]      = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: `cplex_dynamic` (lib) generated 40 warnings
[INFO] [stderr] warning: `cplex_dynamic` (lib test) generated 40 warnings (40 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cplex_dynamic-f1c8b6aae403b917)
[INFO] [stderr]    Doc-tests cplex_dynamic
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test src/load.rs - load::Variable (line 311) ... FAILED
[INFO] [stdout] test src/load.rs - load::Env::set_param (line 270) ... FAILED
[INFO] [stdout] test src/load.rs - load::Constraint (line 415) ... FAILED
[INFO] [stdout] test src/load.rs - load::con (line 528) ... FAILED
[INFO] [stdout] test src/load.rs - load::con (line 519) ... FAILED
[INFO] [stdout] test src/load.rs - load::Constraint (line 439) ... FAILED
[INFO] [stdout] test src/load.rs - load::con (line 510) ... FAILED
[INFO] [stdout] test src/load.rs - load::con (line 540) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/load.rs - load::Variable (line 311) stdout ----
[INFO] [stdout] error[E0463]: can't find crate for `rplex`
[INFO] [stdout]  --> src/load.rs:313:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | extern crate rplex;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `var` in this scope
[INFO] [stdout]   --> src/load.rs:320:23
[INFO] [stdout]    |
[INFO] [stdout] 10 |     prob.add_variable(var!("x" -> 4.0 as Binary)).unwrap();
[INFO] [stdout]    |                       ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this macro
[INFO] [stdout]    |
[INFO] [stdout] 5  + use cplex_dynamic::var;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `var` in this scope
[INFO] [stdout]   --> src/load.rs:321:23
[INFO] [stdout]    |
[INFO] [stdout] 11 |     prob.add_variable(var!(0.0 <= "y" <= 100.0  -> 3.0 as Integer)).unwrap();
[INFO] [stdout]    |                       ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this macro
[INFO] [stdout]    |
[INFO] [stdout] 5  + use cplex_dynamic::var;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `var` in this scope
[INFO] [stdout]   --> src/load.rs:322:23
[INFO] [stdout]    |
[INFO] [stdout] 12 |     prob.add_variable(var!(0.0 <= "z" <= 4.5 -> 2.0)).unwrap();
[INFO] [stdout]    |                       ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this macro
[INFO] [stdout]    |
[INFO] [stdout] 5  + use cplex_dynamic::var;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/load.rs - load::Env::set_param (line 270) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `rplex`
[INFO] [stdout]  --> src/load.rs:271:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rplex::{Env, EnvParam};
[INFO] [stdout]   |     ^^^^^ use of undeclared crate or module `rplex`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/load.rs - load::Constraint (line 415) stdout ----
[INFO] [stdout] error[E0463]: can't find crate for `rplex`
[INFO] [stdout]  --> src/load.rs:417:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | extern crate rplex;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `var` in this scope
[INFO] [stdout]   --> src/load.rs:424:31
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let x = prob.add_variable(var!("x" -> 4.0 as Binary)).unwrap();
[INFO] [stdout]    |                               ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this macro
[INFO] [stdout]    |
[INFO] [stdout] 5  + use cplex_dynamic::var;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `var` in this scope
[INFO] [stdout]   --> src/load.rs:425:31
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let y = prob.add_variable(var!(0.0 <= "y" <= 100.0  -> 3.0 as Integer)).unwrap();
[INFO] [stdout]    |                               ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this macro
[INFO] [stdout]    |
[INFO] [stdout] 5  + use cplex_dynamic::var;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `var` in this scope
[INFO] [stdout]   --> src/load.rs:426:31
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let z = prob.add_variable(var!(0.0 <= "z" <= 4.5 -> 2.0)).unwrap();
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] [stdout]    |                               ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this macro
[INFO] [stdout]    |
[INFO] [stdout] 5  + use cplex_dynamic::var;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `con` in this scope
[INFO] [stdout]   --> src/load.rs:427:25
[INFO] [stdout]    |
[INFO] [stdout] 13 |     prob.add_constraint(con!("dummy": 20.0 = 1.0 x + 2.0 y + 3.0 z)).unwrap();
[INFO] [stdout]    |                         ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this macro
[INFO] [stdout]    |
[INFO] [stdout] 5  + use cplex_dynamic::con;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `con` in this scope
[INFO] [stdout]   --> src/load.rs:428:25
[INFO] [stdout]    |
[INFO] [stdout] 14 |     prob.add_constraint(con!("dummy2": 1.0 <= (-1.0) x + 1.0 y)).unwrap();
[INFO] [stdout]    |                         ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this macro
[INFO] [stdout]    |
[INFO] [stdout] 5  + use cplex_dynamic::con;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/load.rs - load::con (line 528) stdout ----
[INFO] [stdout] error[E0463]: can't find crate for `rplex`
[INFO] [stdout]  --> src/load.rs:530:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | extern crate rplex;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `con` in this scope
[INFO] [stdout]  --> src/load.rs:533:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | con!("basic weighted sum": 0.0 = wsum (&xs));
[INFO] [stdout]   | ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this macro
[INFO] [stdout]   |
[INFO] [stdout] 2 + use cplex_dynamic::con;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/load.rs - load::con (line 519) stdout ----
[INFO] [stdout] error[E0463]: can't find crate for `rplex`
[INFO] [stdout]  --> src/load.rs:521:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | extern crate rplex;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `con` in this scope
[INFO] [stdout]  --> src/load.rs:524:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | con!("basic sum": 0.0 >= sum (&xs));
[INFO] [stdout]   | ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this macro
[INFO] [stdout]   |
[INFO] [stdout] 2 + use cplex_dynamic::con;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/load.rs - load::Constraint (line 439) stdout ----
[INFO] [stdout] error[E0463]: can't find crate for `rplex`
[INFO] [stdout]  --> src/load.rs:441:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | extern crate rplex;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `var` in this scope
[INFO] [stdout]   --> src/load.rs:448:31
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let x = prob.add_variable(var!("x" -> 4.0 as Binary)).unwrap();
[INFO] [stdout]    |                               ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this macro
[INFO] [stdout]    |
[INFO] [stdout] 5  + use cplex_dynamic::var;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `var` in this scope
[INFO] [stdout]   --> src/load.rs:449:31
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let y = prob.add_variable(var!(0.0 <= "y" <= 100.0  -> 3.0 as Integer)).unwrap();
[INFO] [stdout]    |                               ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this macro
[INFO] [stdout]    |
[INFO] [stdout] 5  + use cplex_dynamic::var;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `var` in this scope
[INFO] [stdout]   --> src/load.rs:450:31
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let z = prob.add_variable(var!(0.0 <= "z" <= 4.5 -> 2.0)).unwrap();
[INFO] [stdout]    |                               ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this macro
[INFO] [stdout]    |
[INFO] [stdout] 5  + use cplex_dynamic::var;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/load.rs - load::con (line 510) stdout ----
[INFO] [stdout] error[E0463]: can't find crate for `rplex`
[INFO] [stdout]  --> src/load.rs:512:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | extern crate rplex;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `con` in this scope
[INFO] [stdout]  --> src/load.rs:515:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | con!("basic": 0.0 <= 1.0 x1 + (-1.0) x2);
[INFO] [stdout]   | ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this macro
[INFO] [stdout]   |
[INFO] [stdout] 2 + use cplex_dynamic::con;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/load.rs - load::con (line 540) stdout ----
[INFO] [stdout] error[E0463]: can't find crate for `rplex`
[INFO] [stdout]  --> src/load.rs:542:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | extern crate rplex;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stdout] 
[INFO] [stdout] error: cannot find macro `con` in this scope
[INFO] [stdout]  --> src/load.rs:547:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | con!("mixed sum": 0.0 <= 1.0 x1 + (-1.0) x2 + sum (&ys) + wsum (&zs));
[INFO] [stdout]   | ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this macro
[INFO] [stdout]   |
[INFO] [stdout] 2 + use cplex_dynamic::con;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0463`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/load.rs - load::Constraint (line 415)
[INFO] [stdout]     src/load.rs - load::Constraint (line 439)
[INFO] [stdout]     src/load.rs - load::Env::set_param (line 270)
[INFO] [stdout]     src/load.rs - load::Variable (line 311)
[INFO] [stdout]     src/load.rs - load::con (line 510)
[INFO] [stdout]     src/load.rs - load::con (line 519)
[INFO] [stdout]     src/load.rs - load::con (line 528)
[INFO] [stdout]     src/load.rs - load::con (line 540)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 8 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "a09c23a6e5e70793d4874d67fb873aa9b9b478772fd8cf0e878c552f8bba074c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a09c23a6e5e70793d4874d67fb873aa9b9b478772fd8cf0e878c552f8bba074c", kill_on_drop: false }`
[INFO] [stdout] a09c23a6e5e70793d4874d67fb873aa9b9b478772fd8cf0e878c552f8bba074c
