Guillaume Boisseau e3c0158788
Rollup merge of #120504 - kornelski:try_with_capacity, r=Amanieu
Vec::try_with_capacity

Related to #91913

Implements try_with_capacity for `Vec`, `VecDeque`, and `String`. I can follow it up with more collections if desired.

`Vec::try_with_capacity()` is functionally equivalent to the current stable:

```rust
let mut v = Vec::new();
v.try_reserve_exact(n)?
```

However, `try_reserve` calls non-inlined `finish_grow`, which requires old and new `Layout`, and is designed to reallocate memory. There is benefit to using `try_with_capacity`, besides syntax convenience, because it generates much smaller code at the call site with a direct call to the allocator. There's codegen test included.

It's also a very desirable functionality for users of `no_global_oom_handling` (Rust-for-Linux), since it makes a very commonly used function available in that environment (`with_capacity` is used much more frequently than all `(try_)reserve(_exact)`).
2024-03-09 21:40:06 +01:00
..
2024-03-07 11:57:26 +00:00
2024-02-24 17:52:03 -03:00
2024-03-03 16:30:48 -03:00
2024-03-03 16:30:48 -03:00
2024-03-03 16:30:48 -03:00
2024-03-03 16:30:48 -03:00
2024-03-05 20:52:54 -08:00
2024-03-03 16:30:48 -03:00
2024-03-09 01:13:42 +01:00
2024-03-09 01:13:42 +01:00
2024-03-09 01:14:22 +01:00
2024-03-03 16:30:48 -03:00
2024-02-29 14:43:43 +01:00
2024-03-03 16:30:48 -03:00
2024-03-01 02:03:00 +00:00
2024-03-03 16:30:48 -03:00
2024-03-09 12:01:19 +05:30
2024-03-06 16:51:17 +05:30
2024-02-22 18:05:28 +00:00

UI Tests

This folder contains rustc's UI tests.

Test Directives (Headers)

Typically, a UI test will have some test directives / headers which are special comments that tell compiletest how to build and intepret a test.

As part of an on-going effort to rewrite compiletest (see https://github.com/rust-lang/compiler-team/issues/536), a major change proposal to change legacy compiletest-style headers // <directive> to ui_test-style headers //@ <directive> was accepted (see https://github.com/rust-lang/compiler-team/issues/512.

An example directive is ignore-test. In legacy compiletest style, the header would be written as

// ignore-test

but in ui_test style, the header would be written as

//@ ignore-test

compiletest is changed to accept only //@ directives for UI tests (currently), and will reject and report an error if it encounters any comments // <content> that may be parsed as an legacy compiletest-style test header. To fix this, you should migrate to the ui_test-style header //@ <content>.