Subtype predicates only exist on inference types, so we can allow them to register opaque types within them. by oli-obk · Pull Request #123979 · rust-lang/rust (original) (raw)

c4rrao pushed a commit to Vudvud/rust that referenced this pull request

May 25, 2024

@Swatinem @c4rrao

Add a fast-path to Debug ASCII &str

Instead of going through the EscapeDebug machinery, we can just skip over ASCII chars that don’t need any escaping.

Introduce printable-ASCII fast-path for impl Debug for str

Instead of having a single loop that works on utf-8 chars, this splits the implementation into a loop that quickly skips over printable ASCII, falling back to per-char iteration for other chunks.

Switch to primarily using &str

Surprisingly, benchmarks have shown that using &str instead of &[u8] with some unsafe code is actually faster.

Process a single not-ASCII-printable char per iteration

This avoids having to collect a non-ASCII-printable run before processing it.

std: simplify key-based thread locals

std: clean up the TLS implementation

Make clamp inline

Run rustfmt on files that need it.

Somehow these files aren't properly formatted. By default x fmt and x tidy only check files that have changed against master, so if an ill-formatted file somehow slips in it can stay that way as long as it doesn't get modified(?)

I found these when I ran x fmt explicitly on every .rs file in the repo, while working on rust-lang/compiler-team#750.

Fix the dead link in the bootstrap README

Notify kobzol after changes to opt-dist

Revert "Rollup merge of rust-lang#123979 - oli-obk:define_opaque_types7, r=compiler-errors"

This reverts commit f939d1f, reversing changes made to 183c706.

Add regression tests

Only suppress binop error in favor of semicolon suggestion if we're in an assignment statement

compiler: const_eval/transform/validate.rs -> mir_transform/validate.rs

compiler: unnest rustc_const_eval::check_consts

clippy: unnest check_consts

miri: receive the blessings of validate.rs

Migrate run-make/rustdoc-with-output-dir-option to rmake.rs

Fix some SIMD intrinsics documentation

Actually just remove the special case altogether

rustdoc-json: Add test for keywords with --document-private-items

tag more stuff with WG-trait-system-refactor

Warn/error on self ctor from outer item in inner item

(Mostly) revert "Account for type param from other item in note_and_explain"

This mostly reverts commit 7449478. It also removes an opt_param_at that really is unnecessary given our ICE policy for malformed intrinsics.

Update cargo

use posix_memalign on most Unix targets

fix typo

Co-authored-by: Jubilee 46493976+workingjubilee@users.noreply.github.com

Fail relating constants of different types

Use regular type equating instead of a custom query

Bump bootstrap compiler to the latest beta compiler

Remove now outdated comment since we bumped stage0

Stop using the avx512er and avx512pf x86 target features

They are no longer supported by LLVM 19.

Fixes rust-lang#125492

remove proof tree formatter, make em shallow

Don't eagerly monomorphize drop for types that are impossible to instantiate

Better ICE message for unresolved upvars

Structurally resolve before builtin_index in EUV

Add manual Sync impl for ReentrantLockGuard

Fixes: rust-lang#125526