<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_borrowck/src, branch 1.77.2</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.77.2</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.77.2'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2024-01-30T19:22:04+00:00</updated>
<entry>
<title>Auto merge of #119101 - compiler-errors:outlives, r=lcnr</title>
<updated>2024-01-30T19:22:04+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2024-01-30T19:22:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=cb4d9a1902b3ea17e93872dafb76d24aa6295c47'/>
<id>urn:sha1:cb4d9a1902b3ea17e93872dafb76d24aa6295c47</id>
<content type='text'>
Normalize region obligation in lexical region resolution with next-gen solver

This normalizes region obligations when we `resolve_regions`, since they may be unnormalized with deferred projection equality.

It's pretty hard to add tests that exercise this without also triggering MIR borrowck errors (because we don't normalize there yet). I've added one test with two revisions that should test that we both 1. normalize region obligations in the param env, and 2. normalize registered region obligations during lexical region resolution.
</content>
</entry>
<entry>
<title>Rollup merge of #120488 - nnethercote:diag-lifetimes, r=oli-obk</title>
<updated>2024-01-30T10:19:20+00:00</updated>
<author>
<name>Guillaume Gomez</name>
<email>guillaume1.gomez@gmail.com</email>
</author>
<published>2024-01-30T10:19:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f99b510429f90723105d9773f4ca9a6085685c3c'/>
<id>urn:sha1:f99b510429f90723105d9773f4ca9a6085685c3c</id>
<content type='text'>
Diagnostic lifetimes cleanups

Some diagnostic simplifications.

r? `@oli-obk`
</content>
</entry>
<entry>
<title>Remove the lifetime from `DiagnosticArgValue`.</title>
<updated>2024-01-30T07:46:06+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2024-01-30T04:27:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5350edb9e8f4e194a2cad9a41b81d97a8ed52fab'/>
<id>urn:sha1:5350edb9e8f4e194a2cad9a41b81d97a8ed52fab</id>
<content type='text'>
Because it's almost always static.

This makes `impl IntoDiagnosticArg for DiagnosticArgValue` trivial,
which is nice.

There are a few diagnostics constructed in
`compiler/rustc_mir_build/src/check_unsafety.rs` and
`compiler/rustc_mir_transform/src/errors.rs` that now need symbols
converted to `String` with `to_string` instead of `&amp;str` with `as_str`,
but that' no big deal, and worth it for the simplifications elsewhere.
</content>
</entry>
<entry>
<title>Apply suggestions from review</title>
<updated>2024-01-30T00:09:58+00:00</updated>
<author>
<name>Michael Goulet</name>
<email>michael@errs.io</email>
</author>
<published>2024-01-26T19:18:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=720d7a7a03b9997644fe28a12a80a910b2652760'/>
<id>urn:sha1:720d7a7a03b9997644fe28a12a80a910b2652760</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Normalize caller bounds</title>
<updated>2024-01-30T00:06:53+00:00</updated>
<author>
<name>Michael Goulet</name>
<email>michael@errs.io</email>
</author>
<published>2023-12-25T21:37:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=fef38a6337c6acf14eb70bf013717f484aa57eec'/>
<id>urn:sha1:fef38a6337c6acf14eb70bf013717f484aa57eec</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #120390 - matthewjasper:inline-constant-pat-mir, r=davidtwco</title>
<updated>2024-01-29T12:56:53+00:00</updated>
<author>
<name>Dylan DPC</name>
<email>99973273+Dylan-DPC@users.noreply.github.com</email>
</author>
<published>2024-01-29T12:56:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=549eeb077d482734f623c3769333fed71e1e7fca'/>
<id>urn:sha1:549eeb077d482734f623c3769333fed71e1e7fca</id>
<content type='text'>
Borrow check inline const patterns

Add type annotations to MIR so that borrowck can pass constraints from inline constants in patterns to the containing function.
Also enables some inline constant pattern tests that were fixed by the THIR unsafeck stabilization.

cc #76001
</content>
</entry>
<entry>
<title>Borrow check inline const patterns</title>
<updated>2024-01-29T09:17:00+00:00</updated>
<author>
<name>Matthew Jasper</name>
<email>mjjasper1@gmail.com</email>
</author>
<published>2024-01-26T13:23:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=83fa46fe5bcf8324aaa0614212080486623d672b'/>
<id>urn:sha1:83fa46fe5bcf8324aaa0614212080486623d672b</id>
<content type='text'>
Add type annotations to MIR so that borrowck can pass constraints from
inline constants in patterns to the containing function.
</content>
</entry>
<entry>
<title>Stop using `String` for error codes.</title>
<updated>2024-01-28T20:41:41+00:00</updated>
<author>
<name>Nicholas Nethercote</name>
<email>n.nethercote@gmail.com</email>
</author>
<published>2024-01-13T23:57:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5d9dfbd08f38c2a9bc71d39de8f5c7776afe0f9e'/>
<id>urn:sha1:5d9dfbd08f38c2a9bc71d39de8f5c7776afe0f9e</id>
<content type='text'>
Error codes are integers, but `String` is used everywhere to represent
them. Gross!

This commit introduces `ErrCode`, an integral newtype for error codes,
replacing `String`. It also introduces a constant for every error code,
e.g. `E0123`, and removes the `error_code!` macro. The constants are
imported wherever used with `use rustc_errors::codes::*`.

With the old code, we have three different ways to specify an error code
at a use point:
```
error_code!(E0123)  // macro call

struct_span_code_err!(dcx, span, E0123, "msg");  // bare ident arg to macro call

\#[diag(name, code = "E0123")]  // string
struct Diag;
```

With the new code, they all use the `E0123` constant.
```
E0123  // constant

struct_span_code_err!(dcx, span, E0123, "msg");  // constant

\#[diag(name, code = E0123)]  // constant
struct Diag;
```

The commit also changes the structure of the error code definitions:
- `rustc_error_codes` now just defines a higher-order macro listing the
  used error codes and nothing else.
- Because that's now the only thing in the `rustc_error_codes` crate, I
  moved it into the `lib.rs` file and removed the `error_codes.rs` file.
- `rustc_errors` uses that macro to define everything, e.g. the error
  code constants and the `DIAGNOSTIC_TABLES`. This is in its new
  `codes.rs` file.
</content>
</entry>
<entry>
<title>Remove unused features</title>
<updated>2024-01-25T14:01:33+00:00</updated>
<author>
<name>clubby789</name>
<email>jamie@hill-daniel.co.uk</email>
</author>
<published>2024-01-14T20:08:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=fd29f74ff8d787f707a40bc5dbcd8f7827100f5e'/>
<id>urn:sha1:fd29f74ff8d787f707a40bc5dbcd8f7827100f5e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #116152 - cjgillot:unchunck, r=nnethercote</title>
<updated>2024-01-23T11:56:30+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2024-01-23T11:56:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0e4243538b9119654c22dce688f8a63c81864de9'/>
<id>urn:sha1:0e4243538b9119654c22dce688f8a63c81864de9</id>
<content type='text'>
Only use dense bitsets in dataflow analyses

When a dataflow state has the size close to the number of locals, we should prefer a dense bitset, like we already store locals in a dense vector.
Other occurrences of `ChunkedBitSet` need to be justified by the size of the dataflow state.
</content>
</entry>
</feed>
