error[E0061]: this method takes 2 arguments but 1 argument was supplied --> $DIR/point-at-inference-4.rs:12:7 | LL | s.infer(0i32); | ^^^^^------ an argument is missing | note: method defined here --> $DIR/point-at-inference-4.rs:4:8 | LL | fn infer(&self, a: A, b: B) {} | ^^^^^ ---- ---- help: provide the argument | LL | s.infer(0i32, /* b */); | ~~~~~~~~~~~~~~~ error[E0308]: mismatched types --> $DIR/point-at-inference-4.rs:19:24 | LL | s.infer(0i32); | - ---- this argument has type `i32`... | | | ... which causes `s` to have type `S` ... LL | let t: S = s; | --------- ^ expected `S`, found `S` | | | expected due to this | = note: expected struct `S` found struct `S` help: change the type of the numeric literal from `i32` to `u32` | LL | s.infer(0u32); | ~~~ error: aborting due to 2 previous errors Some errors have detailed explanations: E0061, E0308. For more information about an error, try `rustc --explain E0061`.