Closed
Description
Similar to #694:
pred p(j: int) -> bool { true }
fn f(i: int, j: int) : p(j) -> int { j }
fn g(i: int, j: int) : p(j) -> int { f(i, j) }
../src/test/run-pass/typestate.rs:8:37:8:44: error: Unsatisfied precondition constraint (for example, p(j)[../src/test/run-pass/typestate.rs:6:23:6:27]) for expression:
f(i, j)
Precondition:
p(j)[../src/test/run-pass/typestate.rs:6:23:6:27], init(j [../src/test/run-pass/typestate.rs:8:0:8:46]), init(i [../src/test/run-pass/typestate.rs:8:0:8:46])
Prestate:
!p(j)[../src/test/run-pass/typestate.rs:6:23:6:27], p(i, j)[../src/test/run-pass/typestate.rs:8:23:8:27], init(j [../src/test/run-pass/typestate.rs:8:0:8:46]), init(i [../src/test/run-pass/typestate.rs:8:0:8:46]), !init(g [../src/test/run-pass/typestate.rs:8:0:8:46]), !init(g! [../src/test/run-pass/typestate.rs:8:0:8:46])
../src/test/run-pass/typestate.rs:8 fn g(i: int, j: int) : p(j) -> int { f(i, j) }
This problem is affecting std::str::replace
Metadata
Metadata
Assignees
Labels
No labels