Skip to content

Commit

Permalink
New infcx usage (#1571)
Browse files Browse the repository at this point in the history
  • Loading branch information
Noratrieb authored Jan 30, 2023
1 parent 4a1d549 commit e359ee2
Showing 1 changed file with 5 additions and 7 deletions.
12 changes: 5 additions & 7 deletions src/type-inference.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,18 +36,16 @@ signature, such as the `'a` in `for<'a> fn(&'a u32)`. A region is

## Creating an inference context

You create and "enter" an inference context by doing something like
You create an inference context by doing something like
the following:

```rust,ignore
tcx.infer_ctxt().enter(|infcx| {
// Use the inference context `infcx` here.
})
let infcx = tcx.infer_ctxt().build();
// Use the inference context `infcx` here.
```

Within the closure,
`infcx` has the type `InferCtxt<'a, 'tcx>` for some fresh `'a`,
while `'tcx` is the same as outside the inference context.
`infcx` has the type `InferCtxt<'tcx>`, the same `'tcx` lifetime as on
the `tcx` it was built from.

The `tcx.infer_ctxt` method actually returns a builder, which means
there are some kinds of configuration you can do before the `infcx` is
Expand Down

0 comments on commit e359ee2

Please sign in to comment.