Commit graph

72 commits

Author SHA1 Message Date
Amanieu d'Antras
632a400a36 Fix ui tests for llvm_asm! deprecation 2021-08-15 13:27:13 +01:00
Smitty
6953f17aec Test dropping union fields more 2021-08-03 15:11:04 -04:00
LeSeulArtichaut
12804230a2 Properly find owner of closure in THIR unsafeck
Co-authored-by: FabianWolff <fabian.wolff@alumni.ethz.ch>
2021-07-30 19:05:34 +02:00
Fabian Wolff
b0888614f1 Implement Mutation- and BorrowOfLayoutConstrainedField in thir-unsafeck 2021-07-10 16:33:00 +02:00
Smitty
74d0d74dae Check for union field accesses in THIR unsafeck 2021-07-09 13:51:28 -04:00
Cameron Steffen
b07bb6d698 Fix unused_unsafe with compiler-generated unsafe 2021-06-21 17:25:45 -05:00
Dylan DPC
9d4a6449db
Rollup merge of #85564 - pnkfelix:issue-85435-readd-capture-disjoint-fields-gate, r=nikomatsakis
readd capture disjoint fields gate

This readds a feature gate guard that was added in PR #83521. (Basically, there were unintended consequences to the code exposed by removing the feature gate guard.)

The root bug still remains to be resolved, as discussed in issue #85561. This is just a band-aid suitable for a beta backport.

Cc issue #85435

Note that the latter issue is unfixed until we backport this (or another fix) to 1.53 beta
2021-05-27 03:02:08 +02:00
LeSeulArtichaut
f9e08cd75f Run THIR unsafeck on unsafe_op_in_unsafe_fn test 2021-05-25 20:12:42 +02:00
Felix S Klock II
1c1d4f907d
Apply suggestions from code review
test THIR unsafeck too

Co-authored-by: Léo Lanteri Thauvin <leseulartichaut@gmail.com>
2021-05-24 16:50:01 -04:00
LeSeulArtichaut
3559565e07 Replace more "NULL" with "null" 2021-05-24 12:59:33 +02:00
Felix S Klock II
0d073c9174
Apply suggestions from code review
(removing confusing comment from my test, since the comment reflects the bad undesirable behavior that is being fixed here.)
2021-05-21 15:10:56 -04:00
Felix S. Klock II
4742bbb48b Regression test for issue 85435. 2021-05-21 15:05:53 -04:00
LeSeulArtichaut
592fecbafb Check for initialization of layout-restricted types 2021-05-21 18:29:51 +02:00
LeSeulArtichaut
27fe959c2c Check for raw pointer dereference in THIR unsafeck 2021-05-20 00:01:05 +02:00
Smitty
116bc6dd76 Check for inline assembly in THIR unsafeck 2021-05-14 09:03:30 -04:00
LeSeulArtichaut
d5ea294114 Test -Zthir-unsafeck for unused unsafe blocks 2021-05-11 20:35:44 +02:00
LeSeulArtichaut
a95b342f02 Test -Zthir-unsafeck for unsafe function calls 2021-05-11 20:35:38 +02:00
Ralf Jung
bafc51e01a remove const_fn feature gate 2021-05-09 14:29:31 +02:00
Brent Kerby
6679f5ceb1 Change 'NULL' to 'null' 2021-05-02 17:46:00 -06:00
Ralf Jung
fb4f48e032 make unaligned_refereces future-incompat lint warn-by-default, and remove the safe_packed_borrows lint that it replaces 2021-03-27 16:59:37 +01:00
LeSeulArtichaut
ec20993c4d Stabilize unsafe_op_in_unsafe_fn lint 2021-02-18 17:12:15 +01:00
oli
d118021f8b Permit mutable references in all const contexts 2021-01-23 11:33:45 +00:00
bors
47121d6d88 Auto merge of #81110 - LeSeulArtichaut:fix-unused-unsafe-label, r=RalfJung
Fix `unused_unsafe` label with `unsafe_block_in_unsafe_fn

Previously, the following code:

```rust
#![feature(unsafe_block_in_unsafe_fn)]

unsafe fn foo() {
    unsafe { unsf() }
}

unsafe fn unsf() {}
```

Would give the following warning:

```
warning: unnecessary `unsafe` block
 --> src/lib.rs:4:5
  |
4 |     unsafe { unsf() }
  |     ^^^^^^ unnecessary `unsafe` block
  |
  = note: `#[warn(unused_unsafe)]` on by default
```
which doesn't point out that the block is in an `unsafe fn`.

Tracking issue: #71668
cc #79208
2021-01-19 08:59:37 +00:00
LeSeulArtichaut
2136a5cfad Fix unused_unsafe label with `unsafe_block_in_unsafe_fn 2021-01-17 16:42:27 +01:00
bors
95cbcad920 Auto merge of #80942 - c410-f3r:tests-tests-tests, r=petrochenkov
Move some tests to more reasonable directories - 2

All tests with a score equal or greater than 1.0 were moved to their respective directories by issuing

```bash
cat FILE | tr -s " " | tr -d '():' | sort -k3 | awk '$3 >= 1' | cut -d " " -f1-2 | sed 's;\\;/;g' | xargs -n2 git mv
```
**Observation**: The first column values is the only column with results greater zero

To attest the confidentiality of the model, some manual revision of at least of tests is needed and this process will be tracked in the following list:

* `src/test/ui/abi/issue-28676.rs` OK #28676
* `src/test/ui/array-slice-vec/issue-15730.rs` OK
* `src/test/ui/associated-types/issue-24338.rs` OK #54823
* `src/test/ui/associated-types/issue-48551.rs` Looks OK #48551
* `src/test/ui/associated-types/issue-50301.rs` Looks OK #63577

...

cc #73494
r? `@petrochenkov`
2021-01-17 02:48:07 +00:00
Caio
ad35979c50 Move some tests to more reasonable directories - 2
Address comments

Update limits
2021-01-16 19:46:54 -03:00
bors
492b83c697 Auto merge of #80290 - RalfJung:less-intrinsic-write, r=lcnr
implement ptr::write without dedicated intrinsic

This makes `ptr::write` more consistent with `ptr::write_unaligned`, `ptr::read`, `ptr::read_unaligned`, all of which are implemented in terms of `copy_nonoverlapping`.

This means we can also remove `move_val_init` implementations in codegen and Miri, and its special handling in the borrow checker.

Also see [this Zulip discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/ptr.3A.3Aread.20vs.20ptr.3A.3Awrite).
2021-01-16 17:28:32 +00:00
oli
0b841846ba Allow references to interior mutable data behind a feature gate 2021-01-01 16:59:12 +00:00
Ralf Jung
db03b58f23 remove move_val_init leftovers 2020-12-31 10:53:37 +01:00
Dylan MacKenzie
51fbd555f0 Bless tests 2020-09-29 19:20:33 -07:00
Dylan MacKenzie
e5e5e64ff1 Bless tests 2020-09-23 21:05:59 -07:00
Dylan MacKenzie
ef6d4277ed Bless tests 2020-09-22 10:05:58 -07:00
Dan Aloni
07e7823c01 pretty: trim paths of unique symbols
If a symbol name can only be imported from one place for a type, and
as long as it was not glob-imported anywhere in the current crate, we
can trim its printed path and print only the name.

This has wide implications on error messages with types, for example,
shortening `std::vec::Vec` to just `Vec`, as long as there is no other
`Vec` importable anywhere.

This adds a new '-Z trim-diagnostic-paths=false' option to control this
feature.

On the good path, with no diagnosis printed, we should try to avoid
issuing this query, so we need to prevent trimmed_def_paths query on
several cases.

This change also relies on a previous commit that differentiates
between `Debug` and `Display` on various rustc types, where the latter
is trimmed and presented to the user and the former is not.
2020-09-02 22:26:37 +03:00
Aaron Hill
5da0576d83
Insert NoDelim groups around nonterminals when lowering macro_rules 2020-07-01 12:42:30 -04:00
Oliver Scherer
9245ba8304 Remove the const_raw_ptr_comparison feature gate.
We can never supply a meaningful implementation of this.
Instead, the follow up commits will create two intrinsics
that approximate comparisons:

* `ptr_maybe_eq`
* `ptr_maybe_ne`

The fact that `ptr_maybe_eq(a, b)` is not necessarily the same
value as `!ptr_maybe_ne(a, b)` is a symptom of this entire
problem.
2020-06-19 18:13:41 +02:00
LeSeulArtichaut
9671b44609 Add tests for packed borrows in unsafe fns 2020-05-27 20:37:58 +02:00
LeSeulArtichaut
925d5ac45f Fix and bless tests 2020-05-27 20:37:58 +02:00
LeSeulArtichaut
3ce9d5c269 Add more cases to the test 2020-05-27 20:37:57 +02:00
LeSeulArtichaut
bb67915028 Apply suggestions from code review 2020-05-27 20:37:57 +02:00
LeSeulArtichaut
594c499db9 Add tests 2020-05-27 20:37:57 +02:00
Dylan DPC
401b3aefe9
Rollup merge of #72401 - ecstatic-morse:issue-72394, r=eddyb
Use correct function for detecting `const fn` in unsafety checking

Resolves #72394.
2020-05-26 22:11:31 +02:00
Dylan MacKenzie
09619bc459 Add regression test for #72394 2020-05-20 14:55:38 -07:00
Tamir Duberstein
2bf6833d37
Remove dangling COPYRIGHT references
Missed in 2a663555dd.
2020-05-19 14:34:30 -04:00
Mazdak Farrokhzad
8ee220c447 more reuse in block parsing & improve diagnostics. 2020-03-10 08:32:34 +01:00
Mazdak Farrokhzad
a833be2162 parser: fuse free fn parsing together. 2020-02-13 10:39:24 +01:00
Matthias Prechtl
7b555178ae --bless --compare-mode=nll 2020-02-09 20:43:49 +01:00
varkor
24a2929ed1 Normalise notes with the/is 2020-01-24 16:24:50 +00:00
Esteban Küber
d92355c1db Highlight parts of fn in type errors
When a type error arises between two fn items, fn pointers or tuples,
highlight only the differing parts of each.
2019-11-23 16:50:28 -08:00
Esteban Küber
83ffda5216 Specific labels when referring to "expected" and "found" types 2019-11-18 11:02:22 -08:00
Esteban Küber
52e8ec1432 Remove "here" from "expected one of X here" 2019-11-06 17:26:20 -08:00