about summary refs log tree commit diff
path: root/src/test/ui/union
AgeCommit message (Collapse)AuthorLines
2021-09-06Suggest deriving traits if possiblePaul Trojahn-0/+8
This only applies to builtin derives as I don't think there is a clean way to get the available derives in typeck. Closes #85851
2021-09-01Stop sorting bodies by span.Camille GILLOT-26/+26
The definition order is already close to the span order, and only differs in corner cases.
2021-08-25Fix debugger stepping behavior around `match` expressionsWesley Wiser-2/+2
Previously, we would set up the source lines for `match` expressions so that the code generated to perform the test of the scrutinee was matched to the line of the arm that required the test and then jump from the arm block to the "next" block was matched to all of the lines in the `match` expression. While that makes sense, it has the side effect of causing strange stepping behavior in debuggers. I've changed the source information so that all of the generated tests are sourced to `match {scrutinee}` and the jumps are sourced to the last line of the block they are inside. This resolves the weird stepping behavior in all debuggers and resolves some instances of "ambiguous symbol" errors in WinDbg preventing the user from setting breakpoints at `match` expressions.
2021-08-22Fix typos “a”→“an”Frank Steffahn-1/+1
2021-08-16Use note to point at bound introducing requirementEsteban Küber-12/+12
2021-08-15Introduce hir::ExprKind::Let - Take 2Caio-2/+2
2021-08-11Modify structured suggestion outputEsteban Küber-23/+26
* On suggestions that include deletions, use a diff inspired output format * When suggesting addition, use `+` as underline * Color highlight modified span
2021-08-08Auto merge of #87697 - GuillaumeGomez:add-e0784, r=nagisabors-10/+10
Assign E0784 error code for union expression errors
2021-08-04Remove trailing whitespace from error messagesFabian Wolff-4/+4
2021-08-03Test dropping union fields moreSmitty-22/+3
2021-08-02Update UI testsGuillaume Gomez-10/+10
2021-07-30Do not discard `?Sized` type params and suggest their removalEsteban Küber-0/+12
2021-07-27Update testsJacob Pratt-3/+1
2021-07-23Implement `AssignToDroppingUnionField` in THIR unsafeckLeSeulArtichaut-3/+19
2021-07-19Various diagnostics clean ups/tweaksEsteban Küber-12/+30
* Always point at macros, including derive macros * Point at non-local items that introduce a trait requirement * On private associated item, point at definition
2021-07-09Check for union field accesses in THIR unsafeckSmitty-65/+707
2021-05-12Show macro name in 'this error originates in macro' messageAaron Hill-2/+2
When there are multiple macros in use, it can be difficult to tell which one was responsible for producing an error.
2021-05-09remove const_fn feature gateRalf Jung-2/+0
2021-04-10Expand derive invocations in left-to-right orderAaron Hill-18/+18
While derives were being collected in left-to-order order, the corresponding `Invocation`s were being pushed in the wrong order.
2021-04-03Remove redundant `ignore-tidy-linelength` annotationsSimon Jakobi-7/+6
This is step 2 towards fixing #77548. In the codegen and codegen-units test suites, the `//` comment markers were kept in order not to affect any source locations. This is because these tests cannot be automatically `--bless`ed.
2021-03-31give full path of constraint in suggest_constraining_type_paramhi-rustin-3/+3
revert file bless with nll mode
2021-03-29Suggest box/pin/arc ing receiver on method callsEsteban Küber-8/+0
2021-01-26Avoid describing a method as 'not found' when bounds are unsatisfiedAaron Hill-4/+4
Fixes #76267 When there is a single applicable method candidate, but its trait bounds are not satisfied, we avoid saying that the method is "not found". Insted, we update the error message to directly mention which bounds are not satisfied, rather than mentioning them in a note.
2020-12-15Auto merge of #78068 - RalfJung:union-safe-assign, r=nikomatsakisbors-31/+52
consider assignments of union field of ManuallyDrop type safe Assigning to `Copy` union fields is safe because that assignment will never drop anything. However, with https://github.com/rust-lang/rust/pull/77547, unions may also have `ManuallyDrop` fields, and their assignments are currently still unsafe. That seems unnecessary though, as assigning `ManuallyDrop` does not drop anything either, and is thus safe even for union fields. I assume this will at least require FCP.
2020-11-29Update tests to remove old numeric constantsbstrie-3/+0
Part of #68490. Care has been taken to leave the old consts where appropriate, for testing backcompat regressions, module shadowing, etc. The intrinsics docs were accidentally referring to some methods on f64 as std::f64, which I changed due to being contrary with how we normally disambiguate the shadow module from the primitive. In one other place I changed std::u8 to std::ops since it was just testing path handling in macros. For places which have legitimate uses of the old consts, deprecated attributes have been optimistically inserted. Although currently unnecessary, they exist to emphasize to any future deprecation effort the necessity of these specific symbols and prevent them from being accidentally removed.
2020-11-20needs -> might needRalf Jung-6/+6
2020-11-20adjust union access unsafety check logic to take into account Deref and the ↵Ralf Jung-9/+54
actual type of the assignment
2020-11-20consider assignments of union field of ManuallyDrop type safeRalf Jung-28/+4
2020-10-16stabilize union with 'ManuallyDrop' fields and 'impl Drop for Union'Ralf Jung-43/+23
2020-10-11rustc_parse: More precise spans for `tuple.0.0`Vadim Petrochenkov-3/+3
2020-09-23Deduplicate errors in const to pat conversionOliver Scherer-8/+1
2020-09-13rebase falloutRalf Jung-1/+1
2020-09-13make union-drop mem::forget test meaningfulRalf Jung-4/+4
2020-09-13please tidyRalf Jung-1/+1
2020-09-13unions: test move behavior of non-Copy fieldsRalf Jung-0/+93
2020-09-05Auto merge of #75584 - RalfJung:union-no-deref, r=matthewjasperbors-0/+84
do not apply DerefMut on union field This implements the part of [RFC 2514](https://github.com/rust-lang/rfcs/blob/master/text/2514-union-initialization-and-drop.md) about `DerefMut`. Unlike described in the RFC, we only apply this warning specifically when doing `DerefMut` of a `ManuallyDrop` field; that is really the case we are worried about here. @matthewjasper suggested I patch `convert_place_derefs_to_mutable` and `convert_place_op_to_mutable` for this, but I could not find anything to do in `convert_place_op_to_mutable` and this is sufficient to make the test pass. However, maybe there are some other cases this misses? I have no familiarity with this code. This is a breaking change *in theory*, if someone used `ManuallyDrop<T>` in a union field and relied on automatic `DerefMut`. But on stable this means `T: Copy`, so the `ManuallyDrop` is rather pointless. Cc https://github.com/rust-lang/rust/issues/55149
2020-09-02pretty: trim paths of unique symbolsDan Aloni-25/+25
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-08-31test more ways of mutably accessing a placeRalf Jung-1/+45
2020-08-31only emit error for ManuallyDrop derefsRalf Jung-8/+9
2020-08-31also detect DerefMut in nested union fieldsRalf Jung-4/+19
2020-08-31do not apply DerefMut on union fieldRalf Jung-0/+24
2020-07-27mv std libs to library/mark-3/+3
2020-07-14Rollup merge of #74228 - estebank:unsized-param, r=davidtwcoManish Goregaokar-16/+53
Provide structured suggestion on unsized fields and fn params * Suggest borrowing or boxing unsized fields * Suggest borrowing fn parameters * Remove some verbosity of unsized errors * Remove `on_unimplemented` note from `trait Sized` Fix #23286, fix #28653. r? @davidtwco
2020-07-14Reword messageEsteban Küber-5/+5
2020-07-14Remove redundant explanatory `note` for type parametersEsteban Küber-3/+0
2020-07-14Remove `Sized` `on_unimplemented` noteEsteban Küber-5/+0
2020-07-14Suggest boxing or borrowing unsized fieldsEsteban Küber-8/+53
2020-07-12Detect tuple struct incorrectly used as struct patEsteban Küber-6/+6
2020-06-10review comments: only suggest one substitutionEsteban Küber-5/+1
2020-06-10On recursive ADT, provide indirection structured suggestionEsteban Küber-2/+9