summary refs log tree commit diff
path: root/src/test/ui/traits
AgeCommit message (Collapse)AuthorLines
2022-09-12A SubstitutionPart is not a deletion if it replaces nothing with nothingMichael Goulet-3/+2
2022-09-08Adjust spacing in suggestion, add a testMichael Goulet-2/+2
2022-09-08Add associated item binding to non-param-ty where clause suggestionsMichael Goulet-2/+2
2022-08-31Fix a bunch of typoDezhi Wu-1/+1
This PR will fix some typos detected by [typos]. I only picked the ones I was sure were spelling errors to fix, mostly in the comments. [typos]: https://github.com/crate-ci/typos
2022-08-26Rollup merge of #99064 - lyming2007:issue-97687-fix, r=estebankYuki Okushi-5/+5
distinguish the method and associated function diagnostic information Methods are defined within the context of a struct and their first parameter is always self Associated functions don’t take self as a parameter ``` modified: compiler/rustc_typeck/src/check/method/suggest.rs modified: src/test/ui/auto-ref-slice-plus-ref.stderr modified: src/test/ui/block-result/issue-3563.stderr modified: src/test/ui/issues/issue-28344.stderr modified: src/test/ui/suggestions/dont-suggest-pin-array-dot-set.stderr modified: src/test/ui/suggestions/suggest-methods.stderr modified: src/test/ui/traits/trait-upcasting/subtrait-method.stderr ```
2022-08-22Auto merge of #100676 - lcnr:implied-bounds-yay, r=nikomatsakisbors-2/+2
implied bounds: explicitly state which types are assumed to be wf Adds a new query which maps each definition to the types which that definition assumes to be well formed. The intent is to make it easier to reason about implied bounds. This change should not influence the user-facing behavior of rustc. Notably, `borrowck` still only assumes that the function signature of associated functions is well formed while `wfcheck` assumes that the both the function signature and the impl trait ref is well formed. Not sure if that by itself can trigger UB or whether it's just annoying. As a next step, we can add `WellFormed` predicates to `predicates_of` of these items and can stop adding the wf bounds at each place which uses them. I also intend to move the computation from `assumed_wf_types` to `implied_bounds` into the `param_env` computation. This requires me to take a deeper look at `compare_predicate_entailment` which is currently somewhat weird wrt implied bounds so I am not touching this here. r? `@nikomatsakis`
2022-08-21Adjust messages, address some nitsMichael Goulet-7/+11
2022-08-21Point at struct field if possibleMichael Goulet-8/+8
2022-08-21Prefer non-Self non-method types over Self, firstMichael Goulet-16/+16
2022-08-21Rework ambiguity errorsMichael Goulet-91/+30
2022-08-21Do not favor projection type when pointing out arg causing fulfillment errorMichael Goulet-4/+2
2022-08-21Account for relative pathsMichael Goulet-16/+20
2022-08-21Rework point-at-argMichael Goulet-67/+135
2022-08-20Rollup merge of #100796 - TaKO8Ki:remove-unnecessary-string-searching, ↵Matthias Krüger-12/+18
r=compiler-errors Refactor: remove unnecessary string searchings This patch removes unnecessary string searchings for checking if function arguments have `&` and `&mut`.
2022-08-20Rollup merge of #100500 - cjgillot:verify-self-predicate, r=lcnrMatthias Krüger-1/+31
Ban references to `Self` in trait object substs for projection predicates too. Fixes https://github.com/rust-lang/rust/issues/100484 Fixes https://github.com/rust-lang/rust/issues/100485 r? ````@lcnr````
2022-08-20remove unnecessary string searchingsTakayuki Maeda-12/+18
remove unnecessary string searchings for checking if function arguments have `&` and `&mut`
2022-08-18Reword "Required because of the requirements on the impl of ..."Andy Wang-33/+33
2022-08-17Add const-generics test.Camille GILLOT-0/+23
2022-08-17implied_bounds: clarify our assumptionslcnr-2/+2
2022-08-14Also do it for genericsMichael Goulet-6/+6
2022-08-14Point to argument if it's self type of unsatisfied projection predicateMichael Goulet-4/+8
2022-08-13Rollup merge of #99646 - compiler-errors:arg-mismatch-single-arg-label, ↵Michael Goulet-1/+1
r=estebank Only point out a single function parameter if we have a single arg incompatibility Fixes #99635
2022-08-13Ban references to `Self` in trait object substs for projection predicates too.Camille GILLOT-1/+8
2022-08-12Point out a single arg if we have a single arg incompatibilityMichael Goulet-1/+1
2022-08-10Ban indirect references to `Self` too.Camille GILLOT-0/+19
2022-08-10Generalize trait object generic param check to aliases.Camille GILLOT-0/+184
2022-08-08Adjust wordingMichael Goulet-7/+6
2022-08-07Implement special-cased projection error message for some common traitsMichael Goulet-2/+3
2022-08-03Warn about dead tuple struct fieldsFabian Wolff-7/+7
2022-07-28Remove guess_head_span.Camille GILLOT-6/+5
2022-07-22Auto merge of #99420 - RalfJung:vtable, r=oli-obkbors-15/+68
make vtable pointers entirely opaque This implements the scheme discussed in https://github.com/rust-lang/unsafe-code-guidelines/issues/338: vtable pointers should be considered entirely opaque and not even readable by Rust code, similar to function pointers. - We have a new kind of `GlobalAlloc` that symbolically refers to a vtable. - Miri uses that kind of allocation when generating a vtable. - The codegen backends, upon encountering such an allocation, call `vtable_allocation` to obtain an actually dataful allocation for this vtable. - We need new intrinsics to obtain the size and align from a vtable (for some `ptr::metadata` APIs), since direct accesses are UB now. I had to touch quite a bit of code that I am not very familiar with, so some of this might not make much sense... r? `@oli-obk`
2022-07-20we seem to monomorphize fewer vtables by default now, so adjust some testsRalf Jung-15/+68
2022-07-20Rollup merge of #99352 - compiler-errors:tighter-spans-on-generic-call, ↵Matthias Krüger-17/+5
r=spastorino Use `typeck_results` to avoid duplicate `ast_ty_to_ty` call Comes with a bunch of improvements in spans :heart_eyes:
2022-07-19Add E0790 as more specific variant of E0283aticu-5/+11
2022-07-16Use typeck_results to avoid duplicate ast_ty_to_ty callMichael Goulet-17/+5
2022-07-16Rollup merge of #99290 - compiler-errors:revert-98794, r=lcnrMatthias Krüger-8/+1
Revert "Highlight conflicting param-env candidates" This reverts #98794, commit 08135254dcf22be0d5661ea8f75e703b29a83514. Seems to have caused an incremental compilation bug. The root cause of the incr comp bug is somewhat unrelated but is triggered by this PR, so I don't feel comfortable with having this PR in the codebase until it can be investigated further. Fixes #99233.
2022-07-15Revert "Highlight conflicting param-env candidates"Michael Goulet-8/+1
This reverts commit 08135254dcf22be0d5661ea8f75e703b29a83514.
2022-07-15passes: migrate half of `check_attr`David Wood-4/+4
Migrate half of the `rustc_passes::check_attr` diagnostics to using diagnostic derives and being translatable.
2022-07-11Rollup merge of #99075 - danobi:dup_type_hint_sugg, r=petrochenkovMatthias Krüger-8/+0
Fix duplicated type annotation suggestion Before, there was more or less duplicated suggestions to add type hints. Fix by clearing more generic suggestions when a more specific suggestion is possible. This fixes #93506 .
2022-07-11Rollup merge of #99147 - compiler-errors:issue-55673, r=lcnrDylan DPC-2/+2
Mention similarly named associated type even if it's not clearly in supertrait Due to query cycle avoidance, we sometimes restrict the candidates in `complain_about_assoc_type_not_found` too much so that we can't detect typo replacements from just supertraits. This creates a more general note of the existence of a similarly named associated type from _all_ visible traits when possible. Fixes #55673
2022-07-11Do not mention private Self types from other cratesMichael Goulet-1/+0
2022-07-11Mention similarly named associated type even if it's not clearly in supertraitMichael Goulet-2/+2
2022-07-08Fix duplicated type annotation suggestionDaniel Xu-8/+0
Before, there was more or less duplicated suggestions to add type hints. Fix by clearing more generic suggestions when a more specific suggestion is possible. This fixes #93506 .
2022-07-08distinguish the method and associated function diagnostic informationYiming Lei-5/+5
Methods are defined within the context of a struct and their first parameter is always self Associated functions don’t take self as a parameter modified: compiler/rustc_typeck/src/check/method/suggest.rs modified: src/test/ui/auto-ref-slice-plus-ref.stderr modified: src/test/ui/block-result/issue-3563.stderr modified: src/test/ui/issues/issue-28344.stderr modified: src/test/ui/suggestions/dont-suggest-pin-array-dot-set.stderr modified: src/test/ui/suggestions/suggest-methods.stderr modified: src/test/ui/traits/trait-upcasting/subtrait-method.stderr
2022-07-08Auto merge of #98816 - estebank:implicit-sized, r=oli-obkbors-9/+9
Track implicit `Sized` obligations in type params When we evaluate `ty::GenericPredicates` we introduce the implicit `Sized` predicate of type params, but we do so with only the `Predicate` its `Span` as context, we don't have an `Obligation` or `ObligationCauseCode` we could influence. To try and carry this information through, we add a new field to `ty::GenericPredicates` that tracks both which predicates come from a type param and whether that param has any bounds already (to use in suggestions). We also suggest adding a `?Sized` bound if appropriate on E0599. Address part of #98539.
2022-07-08Rollup merge of #98794 - compiler-errors:conflicting-param-env, ↵Dylan DPC-1/+8
r=michaelwoerister Highlight conflicting param-env candidates This could probably be further improved by noting _why_ equivalent param-env candidates (modulo regions) leads to ambiguity. Fixes #98786
2022-07-08Highlight conflicting param-env candidatesMichael Goulet-1/+8
2022-07-07Track implicit `Sized` obligations in type paramsEsteban Küber-9/+9
Suggest adding a `?Sized` bound if appropriate on E0599 by inspecting the HIR Generics. (Fix #98539)
2022-07-07Shorten span for closures.Camille GILLOT-1/+1
2022-07-02Auto merge of #91743 - cjgillot:enable_mir_inlining_inline_all, r=oli-obkbors-2/+3
Enable MIR inlining Continuation of https://github.com/rust-lang/rust/pull/82280 by `@wesleywiser.` #82280 has shown nice compile time wins could be obtained by enabling MIR inlining. Most of the issues in https://github.com/rust-lang/rust/issues/81567 are now fixed, except the interaction with polymorphization which is worked around specifically. I believe we can proceed with enabling MIR inlining in the near future (preferably just after beta branching, in case we discover new issues). Steps before merging: - [x] figure out the interaction with polymorphization; - [x] figure out how miri should deal with extern types; - [x] silence the extra arithmetic overflow warnings; - [x] remove the codegen fulfilment ICE; - [x] remove the type normalization ICEs while compiling nalgebra; - [ ] tweak the inlining threshold.