Commit Graph

132783 Commits

Author SHA1 Message Date
Eric Holk ef7062dad6 Add test to make sure we run custom destructors 2022-09-12 16:55:58 -07:00
Eric Holk 48e7f24804 Add test case for calling methods on dyn* object 2022-09-12 16:55:57 -07:00
Eric Holk c5441acf67 Call destructors when dyn* object goes out of scope 2022-09-12 16:55:57 -07:00
Eric Holk 549c105bb3 dyn* through more typechecking and MIR 2022-09-12 16:55:56 -07:00
Eric Holk 7fccac3ea0 Typecheck dyn* coercions
Also changes things to treat dyn* as a sized type, unlike dyn Trait.
2022-09-12 16:55:56 -07:00
Eric Holk 6c01273a15 Plumb dyn trait representation through ty::Dynamic 2022-09-12 16:55:55 -07:00
Eric Holk eff35e59c6 Introduce dyn_star feature flag
The primary purpose of this commit is to introduce the
dyn_star flag so we can begin experimenting with implementation.

In order to have something to do in the feature gate test, we also add
parser support for `dyn* Trait` objects. These are currently treated
just like `dyn Trait` objects, but this will change in the future.

Note that for now `dyn* Trait` is experimental syntax to enable
implementing some of the machinery needed for async fn in dyn traits
without fully supporting the feature.
2022-09-12 16:55:55 -07:00
bors fa6ee93752 Auto merge of #101729 - oli-obk:miriup, r=oli-obk
Update miri submodule

r? `@ghost`

fixes #101649
2022-09-12 19:34:30 +00:00
Oli Scherer cccd99c976 Update miri submodule 2022-09-12 17:19:31 +00:00
bors 52e003a6e9 Auto merge of #99334 - NiklasJonsson:84447/error-privacy, r=oli-obk
rustc_error, rustc_private: Switch to stable hash containers

Relates https://github.com/rust-lang/rust/issues/84447
2022-09-12 15:57:37 +00:00
bors 7f115e3cd2 Auto merge of #101716 - Dylan-DPC:rollup-ayvh6nd, r=Dylan-DPC
Rollup of 9 pull requests

Successful merges:

 - #100293 (Add inline-llvm option for disabling/enabling LLVM inlining)
 - #100767 (Remove manual <[u8]>::escape_ascii)
 - #101668 (Suggest pub instead of public for const type item)
 - #101671 (Fix naming format of IEEE 754 standard)
 - #101676 (Check that the types in return position `impl Trait` in traits are well-formed)
 - #101681 (Deny return-position `impl Trait` in traits for object safety)
 - #101693 (Update browser UI test 0 10)
 - #101701 (Rustdoc-Json: Add tests for trait impls.)
 - #101706 (rustdoc: remove no-op `#search`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-09-12 13:16:14 +00:00
Dylan DPC 9bf89e7218 Rollup merge of #101706 - notriddle:notriddle/search-mobile, r=GuillaumeGomez
rustdoc: remove no-op `#search`

The margin rule was added in c729e4dca7 to remove an unnecessary left margin that was present on desktop. This desktop-mode margin was itself removed in 135281ed15.

The padding rule was added in 135281ed15 when converting the rule for `#main`, but didn't do anything even then.
2022-09-12 15:21:36 +05:30
Dylan DPC 228a8bd168 Rollup merge of #101701 - aDotInTheVoid:rdj-impl-tests, r=GuillaumeGomez
Rustdoc-Json: Add tests for trait impls.
2022-09-12 15:21:35 +05:30
Dylan DPC 8ef557d343 Rollup merge of #101693 - GuillaumeGomez:update-browser-ui-test-0-10, r=notriddle
Update browser UI test 0 10

The biggest change from this browser-ui-test update is the upgrade of the puppeteer version to `17.1.3` (the latest in short).

I also added the command `click-with-offset` to still allow us to click on the `[-]` part.

cc `@jsha`
r? `@notriddle`
2022-09-12 15:21:34 +05:30
Dylan DPC 6bacb6f6e9 Rollup merge of #101681 - compiler-errors:rpitit-obj-safety, r=lcnr
Deny return-position `impl Trait` in traits for object safety

Fixes #101667
2022-09-12 15:21:33 +05:30
Dylan DPC 5faf033f62 Rollup merge of #101676 - compiler-errors:rpitit-wf, r=lcnr
Check that the types in return position `impl Trait` in traits are well-formed

This effectively duplicates `check_associated_type_bounds`, but that shouldn't be for long, since we're going to remove it once we refactor RPITITs into regular associated items.

Fixes #101663

---

We don't check

```rust
trait Foo {
  fn bar() -> impl ?Sized;
}
```

currently, but that's for a different reason, which is that we don't currently check that a trait function's return type is sized (i.e. `fn bar() -> [u8]` also works in a trait).
2022-09-12 15:21:33 +05:30
Dylan DPC d7bad03cab Rollup merge of #101668 - chenyukang:fix-101626, r=TaKO8Ki
Suggest pub instead of public for const type item

Fixes #101626
2022-09-12 15:21:31 +05:30
Dylan DPC 413703201c Rollup merge of #100293 - yanchen4791:add-inline-llvm-option, r=nnethercote
Add inline-llvm option for disabling/enabling LLVM inlining

In this PR, a new -Z option `inline-llvm` is added in order to be able to turn on/off LLVM inlining.

The capability of turning on/off inlining in LLVM backend is needed for testing performance implications of using recently enabled inlining in rustc's frontend (with -Z inline-mir=yes option, #91743). It would be interesting to see the performance effect using rustc's frontend inlining only without LLVM inlining enabled. Currently LLVM is still doing inlining no mater what value inline-mir is set to. With the option `inline-llvm` being added in this PR, user can turn off LLVM inlining by using `-Z inline-llvm=no` option (the default of inline-llvm is 'yes', LLVM inlining enabled).
2022-09-12 15:21:29 +05:30
bors a93214ec06 Auto merge of #101604 - compiler-errors:issue-101465, r=lcnr
Fix ICE in opt_suggest_box_span

We were _totally_ mishandling substs and obligations in `opt_suggest_box_span`, so I reworked that function pretty heavily.

Also some drive-by changes, namely removing `ret_type_span`.

Fixes #101465
2022-09-12 08:46:40 +00:00
bors 56e7678ca9 Auto merge of #100502 - chenyukang:fix-100478, r=jackh726
Avoid infinite loop in function arguments checking

Fixes #100478
Fixes #101097
2022-09-12 06:05:32 +00:00
bors 3194958217 Auto merge of #100251 - compiler-errors:tuple-trait-2, r=jackh726
Implement `std::marker::Tuple`

Split out from #99943 (https://github.com/rust-lang/rust/pull/99943#pullrequestreview-1064459183).

Implements part of rust-lang/compiler-team#537
r? `@jackh726`
2022-09-12 03:24:29 +00:00
Michael Goulet 5599a45e58 Fix ICE in opt_suggest_box_span 2022-09-12 02:00:20 +00:00
Michael Howell 2d239fbb9c rustdoc: remove no-op #search
The padding rule was added in 135281ed15 when
converting the rule for #main, but didn't do anything even then.
2022-09-11 18:43:52 -07:00
Michael Howell bff8078fb4 rustdoc: remove no-op #search { margin-left: 0 }
This rule was added in c729e4dca7 to remove an
unnecessary left margin that was present on desktop. This desktop-mode margin
was itself removed in 135281ed15.
2022-09-11 18:32:19 -07:00
Guillaume Gomez d010f95af1 Update tests for new browser-ui-test version 2022-09-11 22:09:23 +02:00
Nixon Enraght-Moony c3fcfa8272 Rustdoc-Json: Add tests for trait impls. 2022-09-11 20:32:47 +01:00
bors 17a627fe87 Auto merge of #101682 - compiler-errors:rpitit-encode, r=fee1-dead
Only encode return-position `impl Trait` in trait when parent function has a default body

Semi-blocked on #101679, because I can't currently write a test for when we _should_ encode the type of the return-position `impl Trait` in trait, which is when a trait has a default function body, like so:

```rust
trait Foo {
  fn bar() -> impl Sized { }
}
```

Though this can land even without #101679, since it does prevent ICEs from occuring any time you use `#![feature(return_position_impl_trait_in_trait)]` in a library, which is kind annoying.
2022-09-11 13:49:52 +00:00
Michael Goulet 1335da9d48 Only encode RPITIT when trait method has default body 2022-09-11 09:36:02 +00:00
Michael Goulet 89b6488ef0 Deny RPITIT for object safety 2022-09-11 09:14:07 +00:00
Michael Goulet fd2766e7fd Check that the types in RPITITs are WF 2022-09-11 06:58:11 +00:00
Charles Lew 4e9bcb5d54 Update unit test outputs 2022-09-11 14:21:40 +08:00
Andrew Cann 9cd008f514 fix tests after rebase 2022-09-11 14:04:18 +08:00
Andrew Cann d9a17229dc test async diagnostics for feature(generator_clone) 2022-09-11 14:04:17 +08:00
Andrew Cann fa6dbcf20d Add feature gate tests for generator_clone 2022-09-11 14:04:16 +08:00
yukang 975dd6cdea fix #101626, suggest pub instead of public for const type item 2022-09-11 08:29:38 +08:00
bors 781ef3e995 Auto merge of #101613 - GuillaumeGomez:codeblock-tooltip, r=notriddle
Simplify codeblock and their associated tooltip

It is based on https://github.com/rust-lang/rust/pull/101600 so it needs to wait for this one to be merged first.

This PR does two things:

 * Remove CSS class duplication by setting CSS classes such as `compile_fail` directly on the `div` wrapping both the codeblock and the tooltip.
 * Simplify DOM: no need to wrap the tooltip into a `<div>`, it can work just as well without it.

You can test it [here](https://rustdoc.crud.net/imperio/codeblock-tooltip/std/string/struct.String.html#deref).

r? `@notriddle`
2022-09-10 23:13:23 +00:00
bors 2287107588 Auto merge of #98559 - jackh726:remove-reempty, r=oli-obk
Remove ReEmpty

r? rust-lang/types
2022-09-10 20:54:01 +00:00
bors 4a6ac3c225 Auto merge of #101647 - crlf0710:test_for_99551, r=bjorn3
Fix LLVM IR type mismatch reported in #99551

Closes #99551 .
2022-09-10 17:39:16 +00:00
Guillaume Gomez 9c3cb2d9bf Update browser-ui-test version to 0.10.0 2022-09-10 17:50:47 +02:00
Charles Lew 1cbbd2aa61 Fix pointer value punning.
Seems this doesn't trigger error on LLVM 15, but let's fix it for better compatibility.
2022-09-10 23:50:20 +08:00
Dylan DPC 783561029c Rollup merge of #101641 - GuillaumeGomez:update-browser-ui-test, r=Dylan-DPC
Update browser-ui-test version to 0.9.8

This version improves the error output mostly.

r? `@Dylan-DPC`
2022-09-10 18:56:11 +05:30
Dylan DPC 6afbe3eca9 Rollup merge of #101631 - rust-lang:notriddle/duplicate-module, r=GuillaumeGomez
rustdoc: avoid cleaning modules with duplicate names

Fixes #83375
2022-09-10 18:56:09 +05:30
Dylan DPC 2386ed9962 Rollup merge of #101578 - lcnr:resolve-hack, r=jackh726
remove bound var hack in `resolve`

somehow dropped that change from #98900.

r? `@jackh726`
2022-09-10 18:56:07 +05:30
bors 5197c96c49 Auto merge of #101483 - oli-obk:guaranteed_opt, r=fee1-dead
The `<*const T>::guaranteed_*` methods now return an option for the unknown case

cc https://github.com/rust-lang/rust/issues/53020#issuecomment-1236932443

I chose `0` for "not equal" and `1` for "equal" and left `2` for the unknown case so backends can just forward to raw pointer equality and it works 

r? `@fee1-dead` or `@lcnr`

cc `@rust-lang/wg-const-eval`
2022-09-10 09:50:21 +00:00
Niklas Jonsson 8d3c30c004 rustc_error, rustc_private, rustc_ast: Switch to stable hash containers 2022-09-10 11:49:12 +02:00
Guillaume Gomez 6302530107 Update browser-ui-test version to 0.9.8 2022-09-10 10:26:51 +02:00
Guillaume Gomez 8ba06d4b91 Update rustdoc GUI tests 2022-09-10 10:18:32 +02:00
Guillaume Gomez 30168bd06b Simplify DOM for codeblocks tooltips 2022-09-10 10:18:32 +02:00
bors db9d86b58d Auto merge of #101639 - matthiaskrgr:rollup-sewkrgm, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #101413 (Use RelocModel::Pic for UEFI targets)
 - #101595 (Fix ICE report flags display.)
 - #101616 (Adapt test for msan message change)
 - #101624 (rustdoc: remove unused CSS `#search { position: relative }`)
 - #101633 (Rustdoc-Json: Correcty handle intra-doc-links to items without HTML page)
 - #101634 (Rustdoc-Json Tests: Use ``@is`` and ``@ismany`` more often.)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-09-10 06:55:37 +00:00
Matthias Krüger 973059e1e7 Rollup merge of #101634 - aDotInTheVoid:rdj-test, r=CraftSpider
Rustdoc-Json Tests: Use `@is` and `@ismany` more often.
2022-09-10 07:09:23 +02:00