about summary refs log tree commit diff
path: root/src/test
AgeCommit message (Collapse)AuthorLines
2020-11-20Auto merge of #79192 - tmiasko:naked-noinline, r=oli-obkbors-0/+30
Never inline naked functions The `#[naked]` attribute disabled prologue / epilogue emission for the function and it is responsibility of a developer to provide them. The compiler is no position to inline such functions correctly. Disable inlining of naked functions at LLVM and MIR level. Closes #60919.
2020-11-20Auto merge of #78088 - fusion-engineering-forks:panic-fmt-lint, r=estebankbors-5/+151
Add lint for panic!("{}") This adds a lint that warns about `panic!("{}")`. `panic!(msg)` invocations with a single argument use their argument as panic payload literally, without using it as a format string. The same holds for `assert!(expr, msg)`. This lints checks if `msg` is a string literal (after expansion), and warns in case it contained braces. It suggests to insert `"{}", ` to use the message literally, or to add arguments to use it as a format string. ![image](https://user-images.githubusercontent.com/783247/96643867-79eb1080-1328-11eb-8d4e-a5586837c70a.png) This lint is also a good starting point for adding warnings about `panic!(not_a_string)` later, once [`panic_any()`](https://github.com/rust-lang/rust/pull/74622) becomes a stable alternative.
2020-11-20Never inline naked functionsTomasz Miąsko-0/+30
The `#[naked]` attribute disabled prologue / epilogue emission for the function and it is responsibility of a developer to provide them. The compiler is no position to inline such functions correctly. Disable inlining of naked functions at LLVM and MIR level.
2020-11-19Rollup merge of #79193 - tmiasko:revert-78969-normalize, r=davidtwcoDylan DPC-14/+8
Revert #78969 "Normalize function type during validation" Closes #79066. Reopens #78442.
2020-11-19Rollup merge of #79185 - petrochenkov:derattr2, r=Aaron1011Dylan DPC-267/+204
expand/resolve: Pre-requisites to "Turn `#[derive]` into a regular macro attribute" Miscellaneous refactorings and error reporting changes extracted from https://github.com/rust-lang/rust/pull/79078. Unlike https://github.com/rust-lang/rust/pull/79078 this PR doesn't make any observable changes to the language or library. r? ```@Aaron1011```
2020-11-19Rollup merge of #79181 - aDotInTheVoid:provided-method-source-link, ↵Dylan DPC-0/+26
r=jyn514,GuillaumeGomez rustdoc: add [src] links to methods on a trait's page Closes #45150 ![image](https://user-images.githubusercontent.com/28781354/99565541-aba4d500-29c3-11eb-99c7-11c1f91584e9.png) ### Caveats - The way I've implemented it, links are also provided for required methods, that just link to the signature in the code. I'm not sure if this is the desired behaviour. ![image](https://user-images.githubusercontent.com/28781354/99566222-849ad300-29c4-11eb-9897-08cc5842954f.png) - I'm not sure if the css changes are correct. I inspected them visualy on firefox on desktop, and they seem to be fine. - I can't tell how `src/librustdoc/html/render/mod.rs` is structured, so I probably
2020-11-19Rollup merge of #79177 - fanzier:drop-order-test, r=RalfJungDylan DPC-0/+44
Test drop order for (destructuring) assignments Add a test that checks whether the drop order of `let` bindings is consistent with the drop order of the corresponding destructuring assignments. Thanks to ```@RalfJung``` for the suggesting this test ([here](https://github.com/rust-lang/rust/pull/79016#issuecomment-727608732)) and an implementation! r? ```@RalfJung```
2020-11-19expand: Stop derive expansion un unexpected targets earlyVadim Petrochenkov-63/+6
Collect derive placeholders using `collect` instead of `push`
2020-11-19resolve: Centralize some error reporting for unexpected macro resolutionsVadim Petrochenkov-196/+196
2020-11-19expand: Tell built-in macros whether we are currently in forced expansion modeVadim Petrochenkov-8/+2
2020-11-19Rollup merge of #79164 - varkor:unbraced-single-segment-const-arguments, ↵Dylan DPC-21/+36
r=petrochenkov Permit standalone generic parameters as const generic arguments in macros Fixes https://github.com/rust-lang/rust/issues/79127. r? ```@petrochenkov```
2020-11-19Rollup merge of #79117 - cjkenn:mir-fuel, r=oli-obkDylan DPC-2/+2
add optimization fuel checks to some mir passes Fixes #77402 Inserts a bunch of calls to `consider_optimizing`. Note that `consider_optimizing` is the method that actually decrements the fuel count, so the point at which it's called is when the optimization takes place, from a fuel perspective. This means that where we call it has some thought behind it: 1. We probably don't want to decrement the fuel count before other simple checks, otherwise we count an optimization as being performed even if nothing was mutated (ie. it returned early). 2. In cases like `InstCombine`, where we gather optimizations in a pass and then mutate values, we probably would rather skip the gathering pass for performance reasons rather than skip the mutations afterwards.
2020-11-19Rollup merge of #79110 - estebank:issue-58964, r=oli-obkDylan DPC-506/+93
Remove redundant notes in E0275 Fix #58964.
2020-11-19Rollup merge of #79102 - Alexendoo:ice-regression-tests, r=Mark-SimulacrumDylan DPC-0/+90
Add two regression tests For #78721 and #78722
2020-11-19Rollup merge of #79101 - tmiasko:lower-func-type, r=jonas-schievinkDylan DPC-0/+38
Don't special case constant operands when lowering intrinsics
2020-11-19Rollup merge of #79094 - est31:ignore_macos, r=pietroalbiniDylan DPC-0/+1
Add //ignore-macos to pretty-std-collections.rs On macOS the test is flaky and sometimes fails, sometimes succeeds on CI. This is no fix for the underlying issue, but I feel the workaround is worth it as the issue makes it harder to get things merged into master. cc #78665
2020-11-19Rollup merge of #79082 - ThePuzzlemaker:issue-78941-fix, r=estebankDylan DPC-21/+42
Improve the diagnostic for when an `fn` contains qualifiers inside an `extern` block. This mitigates #78941. As suggested by ```@estebank,``` `span_suggestion` was replaced with `span_suggestion_verbose` for this specific diagnostic.
2020-11-19Rollup merge of #78961 - CraftSpider:22565, r=oli-obkDylan DPC-14/+53
Make bad "rust-call" arguments no longer ICE The simplest of bad rust-call definitions will no longer cause an ICE. There is a FIXME added for future work, as I wanted to get this easy fix in before trying to either add a hack or mess with the whole obligation system fixes #22565
2020-11-19update print fuel test output again...cjkenn-1/+1
2020-11-19Revert "Normalize function type during validation"Tomasz Miąsko-14/+8
This reverts commit d486bfcbff107e8a6769e00c59d02b13c664b6ee.
2020-11-18Auto merge of #79106 - tmiasko:inline-hint, r=nagisa,eddybbors-0/+31
Fix setting inline hint based on `InstanceDef::requires_inline` For instances where `InstanceDef::requires_inline` is true, an attempt is made to set an inline hint though a call to the `inline` function. The attempt is ineffective, since all attributes will be usually removed by the second call. Fix the issue by applying the attributes only once, with user provided attributes having a priority when provided. Closes #79108.
2020-11-18add [src] links to methods on a trait's pageNixon Enraght-Moony-0/+26
2020-11-18Auto merge of #78995 - Nadrieril:clean-empty-match, r=varkorbors-57/+176
Handle empty matches cleanly in exhaustiveness checking This removes the special-casing of empty matches that was done in `check_match`. This fixes most of https://github.com/rust-lang/rust/issues/55123. Somewhat unrelatedly, I also made `_match.rs` more self-contained, because I think it's cleaner. r? `@varkor` `@rustbot` modify labels: +A-exhaustiveness-checking
2020-11-18Test drop order for (destructuring) assignmentsFabian Zaiser-0/+44
2020-11-18Account for indirect cyclic requirementsEsteban Küber-1/+89
2020-11-18Remove redundant notes in E0275Esteban Küber-505/+4
Fix #58964.
2020-11-18change print-fuel ui test to check-passcjkenn-2/+2
2020-11-18Rollup merge of #79158 - lcnr:lazy-norm-coerce, r=oli-obkMara Bos-18/+31
type is too big -> values of the type are too big strictly speaking, `[u8; usize::MAX]` or even `[[[u128; usize::MAX]; usize::MAX]; usize::MAX]` are absolutely fine types as long as you don't try to deal with any values of it. This error message seems to cause some confusion imo, for example in https://github.com/rust-lang/rust/pull/79135#issuecomment-729361380 so I would prefer us to be more precise here. See the added test case which uses one of these types without causing an error. r? ``@oli-obk``
2020-11-18Rollup merge of #78999 - petrochenkov:deprid, r=eddybMara Bos-1/+11
stability: More precise location for deprecation lint on macros One missing piece of https://github.com/rust-lang/rust/pull/73178.
2020-11-18move fuel checks to later points in instcombine and const_prop, add opt ↵cjkenn-2/+2
level flag to test
2020-11-18Add tests for multi-segment paths in const generic argumentsvarkor-12/+49
2020-11-18Permit standalone generic parameters as const generic arguments in macrosvarkor-25/+3
2020-11-18change error for `LayoutErr::SizeOverflow`Bastian Kauschke-18/+31
2020-11-18Revert "Auto merge of #79132 - pietroalbini:beta-next, r=Mark-Simulacrum"Pietro Albini-18/+29
This was landed on master instead of beta!
2020-11-18Auto merge of #77820 - jyn514:from-inner, r=petrochenkovbors-9/+9
Add `Item::from_def_id_and_kind` to reduce duplication in rustdoc This makes it harder to make typos, and also makes it much more clear what's intentionally different rather than a typo (look for `what_rustc_thinks`). Found this while working on https://github.com/rust-lang/rust/issues/76998, I really didn't want to add `const_visibility` in 20 different places. r? `@GuillaumeGomez`
2020-11-18Auto merge of #79132 - pietroalbini:beta-next, r=Mark-Simulacrumbors-29/+18
Prepare beta 1.49.0 This PR sets everything up for beta 1.49.0, and backports the following PRs to it: * #79107 - build-manifest: strip newline from rustc version * #78986 - Avoid installing external LLVM dylibs * #79074 - Install CI llvm into the library directory * #78364 - Update RELEASES.md for 1.48.0 * #77939 - Ensure that the source code display is working with DOS backline r? `@ghost` cc `@rust-lang/release`
2020-11-17Add `from_def_id_and_kind` reducing duplication in rustdocJoshua Nelson-0/+2
- Add `Item::from_hir_id_and_kind` convenience wrapper - Make name parameter mandatory `tcx.opt_item_name` doesn't handle renames, so this is necessary for any item that could be renamed, which is almost all of them. - Override visibilities to be `Inherited` for enum variants `tcx.visibility` returns the effective visibility, not the visibility that was written in the source code. `pub enum E { A, B }` always has public variants `A` and `B`, so there's no sense printing `pub` again. - Don't duplicate handling of `Visibility::Crate` Instead, represent it as just another `Restricted` path.
2020-11-17Use DefPath for clean::Visibility, not clean::PathJoshua Nelson-9/+7
Visibility needs much less information than a full path, since modules can never have generics. This allows constructing a Visibility from only a DefId. Note that this means that paths are now normalized to their DefPath. In other words, `pub(self)` or `pub(super)` now always shows `pub(in path)` instead of preserving the original text.
2020-11-17Move change to check_fn, fix up overloaded-calls-nontupleRune Tynan-2/+16
2020-11-17Update fulldeps testMark Rousskov-29/+18
2020-11-17Rollup merge of #79130 - lcnr:extend-tes, r=varkorMara Bos-2/+44
extend macro braces test r? `@varkor`
2020-11-17Rollup merge of #79072 - oli-obk:byte_str_pat, r=estebankMara Bos-2/+59
Fix exhaustiveness in case a byte string literal is used at slice type fixes #79048
2020-11-17Fix ui tests for `fn`s with qualifiers in `extern` blocksThePuzzlemaker-21/+42
2020-11-17extend macro braces testBastian Kauschke-2/+44
2020-11-17Fix exhaustiveness in case a byte string literal is used at slice typeoli-2/+59
2020-11-17Rollup merge of #79097 - GuillaumeGomez:code-block-invalid-html-tag-lint, ↵Mara Bos-0/+21
r=jyn514 Code block invalid html tag lint Fixes #79095 r? ``@jyn514``
2020-11-17Rollup merge of #79027 - tmiasko:inline-always-live-locals, r=oli-obkMara Bos-4/+31
Limit storage duration of inlined always live locals Closes #76375.
2020-11-17Rollup merge of #78967 - tmiasko:codegen-tests, r=cuviperMara Bos-9/+17
Make codegen tests compatible with extra inlining
2020-11-17Auto merge of #78801 - sexxi-goose:min_capture, r=nikomatsakisbors-2/+1630
RFC-2229: Implement Precise Capture Analysis ### This PR introduces - Feature gate for RFC-2229 (incomplete) `capture_disjoint_field` - Rustc Attribute to print out the capture analysis `rustc_capture_analysis` - Precise capture analysis ### Description of the analysis 1. If the feature gate is not set then all variables that are not local to the closure will be added to the list of captures. (This is for backcompat) 2. The rest of the analysis is based entirely on how the captured `Place`s are used within the closure. Precise information (i.e. projections) about the `Place` is maintained throughout. 3. To reduce the amount of information we need to keep track of, we do a minimization step. In this step, we determine a list such that no Place within this list represents an ancestor path to another entry in the list. Check rust-lang/project-rfc-2229#9 for more detailed examples. 4. To keep the compiler functional as before we implement a Bridge between the results of this new analysis to existing data structures used for closure captures. Note the new capture analysis results are only part of MaybeTypeckTables that is the information is only available during typeck-ing. ### Known issues - Statements like `let _ = x` will make the compiler ICE when used within a closure with the feature enabled. More generally speaking the issue is caused by `let` statements that create no bindings and are init'ed using a Place expression. ### Testing We removed the code that would handle the case where the feature gate is not set, to enable the feature as default and did a bors try and perf run. More information here: #78762 ### Thanks This has been slowly in the works for a while now. I want to call out `@Azhng` `@ChrisPardy` `@null-sleep` `@jenniferwills` `@logmosier` `@roxelo` for working on this and the previous PRs that led up to this, `@nikomatsakis` for guiding us. Closes rust-lang/project-rfc-2229#7 Closes rust-lang/project-rfc-2229#9 Closes rust-lang/project-rfc-2229#6 Closes rust-lang/project-rfc-2229#19 r? `@nikomatsakis`
2020-11-16update ui test for increased fuel usagecjkenn-1/+1