1. 24 2月, 2023 1 次提交
  2. 23 2月, 2023 32 次提交
    • B
      Auto merge of #108369 - compiler-errors:ty-error-more, r=BoxyUwU · 07c993eb
      bors 提交于
      Use `tcx.ty_error_with_guaranteed` in more places, rename variants
      
      1. Use `ty_error_with_guaranteed` more so we don't delay so many span bugs
      2. Rename `ty_error_with_guaranteed` to `ty_error`, `ty_error` to `ty_error_misc`. This is to incentivize using the former over the latter in cases where we already are witness to a `ErrorGuaranteed` token.
      
      Second commit is just name replacement, so the first commit can be reviewed on its own with more scrutiny.
      07c993eb
    • B
      Auto merge of #108386 - matthiaskrgr:rollup-nojivk9, r=matthiaskrgr · eb909d81
      bors 提交于
      Rollup of 7 pull requests
      
      Successful merges:
      
       - #108063 (Ban associated type bounds in bad positions)
       - #108208 (Correctly handle aggregates in DataflowConstProp)
       - #108218 (Windows: Quote more batch file arguments)
       - #108349 (rustdoc: Prevent duplicated imports)
       - #108350 (Use associated type bounds in some places in the compiler)
       - #108358 (Add git config command to `.git-blame-ignore-revs`)
       - #108373 (hir-analysis: make where-clause-on-main diagnostic translatable)
      
      Failed merges:
      
      r? `@ghost`
      `@rustbot` modify labels: rollup
      eb909d81
    • M
      Rollup merge of #108373 - tshepang:where-clause-on-main, r=compiler-errors · 60014e48
      Matthias Krüger 提交于
      hir-analysis: make where-clause-on-main diagnostic translatable
      60014e48
    • M
      Rollup merge of #108358 - Nilstrieb:git-blame-ignore-my-bad-commits, r=compiler-errors · f4fa0458
      Matthias Krüger 提交于
      Add git config command to `.git-blame-ignore-revs`
      
      I always have to look at the git blame for that file to find the git command in the commit message (luckily that commit isn't in the file :D), putting it directly in the file makes it easier to find. Maybe we should mention the config in some other place as well.
      f4fa0458
    • M
      Rollup merge of #108350 - compiler-errors:assoc-type-bound-dogfooding, r=oli-obk · d6077f89
      Matthias Krüger 提交于
      Use associated type bounds in some places in the compiler
      
      Use associated type bounds for some nested `impl Trait<Assoc = impl Trait2>` cases. I'm generally keen to introduce new lang features that are more mature into the compiler, but maybe let's see what others think?
      
      Side-note: I was surprised that the only use-cases of nested impl trait in the compiler are just iterator related?!
      d6077f89
    • M
      Rollup merge of #108349 - GuillaumeGomez:fix-duplicated-imports2, r=notriddle · 2011ced3
      Matthias Krüger 提交于
      rustdoc: Prevent duplicated imports
      
      Fixes #108163.
      
      Interestingly enough, the AST is providing us an import for each corresponding item, even though the `Res` links to multiple ones each time, which leaded to the same import being duplicated.
      
      So in this PR, I decided to prevent the add of the import before the clean pass. However, I originally took a different path by instead filtering after cleaning the path. You can see it [here](https://github.com/rust-lang/rust/compare/master...GuillaumeGomez:rust:fix-duplicated-imports?expand=1). Only the second commit differs.
      
      I think this approach is better though, but at least we can compare both if we want.
      
      The first commit adds the check for duplicated items in the rustdoc-json output as asked in #108163.
      
      cc `@aDotInTheVoid`
      r? `@notriddle`
      2011ced3
    • M
      Rollup merge of #108218 - ChrisDenton:cmd-escape, r=cuviper · c4a4bce6
      Matthias Krüger 提交于
      Windows: Quote more batch file arguments
      
      Make sure to always quote batch file arguments that contain command prompt special characters.
      
      Additionally add `/d` command line parameter to disable any autorun scripts that may change the way variable expansion works. This makes it more consistent across systems and may help avoid surprises.
      
      ## Background Info
      
      [`CreateProcess`](https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessw) with the `lpApplicationName` set can only be used to run `.exe` files and not script files such as `.bat`. However, for historical reasons, we do have special handling so that `.bat` files will be correctly run with `cmd.exe` as the application.
      
      In Windows, command line arguments are passed as a single string (not an array). Applications can parse this string however they like but most follow the standard MSVC C/C++ convention. But `cmd.exe` uses different argument parsing rules to other Windows programs (because it emulates old DOS).  This PR aims to help smooth over some of the differences.
      
      r? libs
      c4a4bce6
    • M
      Rollup merge of #108208 - cjgillot:flood-enum, r=oli-obk · a423fa7b
      Matthias Krüger 提交于
      Correctly handle aggregates in DataflowConstProp
      
      The previous implementation from https://github.com/rust-lang/rust/pull/107411 flooded target of an aggregate assignment with `Bottom`, corresponding to the `deinit` that the interpreter does.
      
      As a consequence, when assigning `target = Enum::Variant#i(...)` all the `(target as Variant#j)` were at `Bottom` while they should have been `Top`.
      
      This PR replaces that flooding with `Top`.
      
      Aside, it corrects a second bug where the wrong place would be used to assign to enum variant fields, resulting to nothing happening.
      
      Fixes https://github.com/rust-lang/rust/issues/108166
      a423fa7b
    • M
      Rollup merge of #108063 - compiler-errors:associated-type-bounds-in-bad-position, r=cjgillot · ef27e438
      Matthias Krüger 提交于
      Ban associated type bounds in bad positions
      
      We should not try to lower associated type bounds into TAITs in positions where `impl Trait` is not allowed (except for in `where` clauses, like `where T: Trait<Assoc: Bound>`).
      
      This is achieved by using the same `rustc_ast_lowering` machinery as impl-trait does to characterize positions as universal/existential/disallowed.
      
      Fixes #106077
      
      Split out the first commit into #108066, since it's not really related.
      ef27e438
    • B
      Auto merge of #108330 - weihanglo:update-cargo, r=weihanglo · 8b1dbf72
      bors 提交于
      Update cargo
      
      15 commits in 17b3d0de0897e1c6b8ca347bd39f850bb0a5b9f6..9d5b32f503fc099c4064298465add14d4bce11e6
      2023-02-17 19:45:09 +0000 to 2023-02-22 23:04:16 +0000
      
      - refactor(job_queue): docs and move types around (rust-lang/cargo#11758)
      - Scrub more of the test environment (rust-lang/cargo#11757)
      - Make more reads of environment variables go through the `Config` (rust-lang/cargo#11754)
      - Revert "Update curl-sys to use libcurl 7.88.1" (rust-lang/cargo#11755)
      - use consistent case (rust-lang/cargo#11748)
      - Switch some tests from `build` to `check` (rust-lang/cargo#11725)
      - Fix typo in sparse-registry warning message (rust-lang/cargo#11753)
      - reuse url encoding from `url` crate, don't use separate `percent-encoding` (rust-lang/cargo#11750)
      - Read environment variables through `Config` instead of `std::env::var(_os)` (rust-lang/cargo#11727)
      - Update curl-sys to use libcurl 7.88.1 (rust-lang/cargo#11749)
      - mdman: update pretty_assertions to reduce deps (rust-lang/cargo#11747)
      - Cleanup tests (rust-lang/cargo#11745)
      - Enhance help texts of position args (rust-lang/cargo#11740)
      - Fix typo (rust-lang/cargo#11741)
      - Update comment about cargo-ok (rust-lang/cargo#11724)
      8b1dbf72
    • W
      Update cargo · 80bea6cf
      Weihang Lo 提交于
      15 commits in 17b3d0de0897e1c6b8ca347bd39f850bb0a5b9f6..9d5b32f503fc099c4064298465add14d4bce11e6
      2023-02-17 19:45:09 +0000 to 2023-02-22 23:04:16 +0000
      
      - refactor(job_queue): docs and move types around (rust-lang/cargo#11758)
      - Scrub more of the test environment (rust-lang/cargo#11757)
      - Make more reads of environment variables go through the `Config` (rust-lang/cargo#11754)
      - Revert "Update curl-sys to use libcurl 7.88.1" (rust-lang/cargo#11755)
      - use consistent case (rust-lang/cargo#11748)
      - Switch some tests from `build` to `check` (rust-lang/cargo#11725)
      - Fix typo in sparse-registry warning message (rust-lang/cargo#11753)
      - reuse url encoding from `url` crate, don't use separate `percent-encoding` (rust-lang/cargo#11750)
      - Read environment variables through `Config` instead of `std::env::var(_os)` (rust-lang/cargo#11727)
      - Update curl-sys to use libcurl 7.88.1 (rust-lang/cargo#11749)
      - mdman: update pretty_assertions to reduce deps (rust-lang/cargo#11747)
      - Cleanup tests (rust-lang/cargo#11745)
      - Enhance help texts of position args (rust-lang/cargo#11740)
      - Fix typo (rust-lang/cargo#11741)
      - Update comment about cargo-ok (rust-lang/cargo#11724)
      80bea6cf
    • B
      Auto merge of #108324 - notriddle:notriddle/assoc-fn-method,... · 09787119
      bors 提交于
      Auto merge of #108324 - notriddle:notriddle/assoc-fn-method, r=compiler-errors,davidtwco,estebank,oli-obk
      
      diagnostics: if AssocFn has self argument, describe as method
      
      Discussed in https://rust-lang.zulipchat.com/#narrow/stream/147480-t-compiler.2Fwg-diagnostics/topic/.22associated.20function.22.20vs.20.22method.22/near/329265515
      
      This commit also changes the tooltips on rustdoc intra-doc links targeting methods.
      
      For anyone not sure why this is being done, see the Reference definitions of these terms in <https://doc.rust-lang.org/1.67.1/reference/items/associated-items.html#methods>
      
      > Associated functions whose first parameter is named `self` are called methods and may be invoked using the [method call operator](https://doc.rust-lang.org/1.67.1/reference/expressions/method-call-expr.html), for example, `x.foo()`, as well as the usual function call notation.
      
      In particular, while this means it's technically correct for rustc to refer to a method as an associated function (and there are a few cases where it'll still do so), rustc *must never* use the term "method" to refer to an associated function that does not have a `self` parameter.
      09787119
    • T
      ada4e946
    • M
    • M
      Use ty_error_with_guaranteed in many more places · 1e7ef03b
      Michael Goulet 提交于
      1e7ef03b
    • M
      pluralize stuff · b14eb0c4
      Michael Goulet 提交于
      b14eb0c4
    • M
    • B
      Auto merge of #108357 - matthiaskrgr:rollup-ceo3q2s, r=matthiaskrgr · da439d98
      bors 提交于
      Rollup of 6 pull requests
      
      Successful merges:
      
       - #107736 ( Rename atomic 'as_mut_ptr' to 'as_ptr' to match Cell (ref #66893) )
       - #108176 (Don't delay `ReError` bug during lexical region resolve)
       - #108315 (Lint dead code in closures and generators)
       - #108342 (apply query response: actually define opaque types)
       - #108344 (Fix test filename for #105700)
       - #108353 (resolve: Remove `ImportResolver`)
      
      Failed merges:
      
       - #107911 (Add check for invalid #[macro_export] arguments)
      
      r? `@ghost`
      `@rustbot` modify labels: rollup
      da439d98
    • M
      Move associated type bounds check to ast lowering · e7c49089
      Michael Goulet 提交于
      This makes the check for when associated type bounds more accurate
      e7c49089
    • N
      Add git config command to `.git-blame-ignore-revs` · 96ebb21b
      Nilstrieb 提交于
      I always have to look at the git blame for that file to find the git
      command in the commit message (luckily that commit isn't in the file
      :D), putting it directly in the file makes it easier to find. Maybe we
      should mention the config in some other place as well.
      96ebb21b
    • M
      Rollup merge of #108353 - petrochenkov:rmir, r=cjgillot · 9f5c401f
      Matthias Krüger 提交于
      resolve: Remove `ImportResolver`
      
      It's a trivial wrapper over `Resolver` that doesn't bring any benefits
      9f5c401f
    • M
      Rollup merge of #108344 - Alexendoo:test-105700, r=compiler-errors · baf6a721
      Matthias Krüger 提交于
      Fix test filename for #105700
      
      The test is for #105700 rather than #21102
      baf6a721
    • M
      Rollup merge of #108342 - lcnr:opaque-tys, r=oli-obk · 2ad6a39f
      Matthias Krüger 提交于
      apply query response: actually define opaque types
      
      not sure whether this fixes any code considering that #107891 doesn't break anything, but this is currently wrong as the `eq` there should just always fail right now.
      
      We can definitely hit this code if we remove the `replace_opaque_types_with_inference_vars` hack. Doing so without this PR causes a few tests to ICE, e.g.
      
      https://github.com/rust-lang/rust/blob/bd4a96a12d0bf6dc12edf20a45df3a33052c9d7d/tests/ui/impl-trait/issue-99642.rs#L1-L7
      
      r? `@oli-obk`
      2ad6a39f
    • M
      Rollup merge of #108315 - clubby789:dead-code-in-closure, r=compiler-errors · 783617b5
      Matthias Krüger 提交于
      Lint dead code in closures and generators
      
      Fixes #108296
      
      I think this might be a potentially breaking change, but restores the behaviour of pre-1.64.
      
      `@rustbot` label +A-lint
      783617b5
    • M
      Rollup merge of #108176 - compiler-errors:bad-lexical-region-resolve-bug, r=oli-obk · 4d9effc6
      Matthias Krüger 提交于
      Don't delay `ReError` bug during lexical region resolve
      
      Lexical region resolution returns a list of `RegionResolutionError` which don't necessarily correspond to diagnostics being emitted. The compiler may, validly, throw away these resolution errors and do something else. Therefore it's not valid to use `ReError` during lifetime resolution, since we may actually be on a totally fine compilation path.
      
      For example, the `implied_bounds_entailment` lint runs region resolution twice, and only emits an error if it fails both times. If we delay a bug and create a `ReError` during this first run, then we will ICE.
      
      Fixes #108170
      
      ----
      
      Side-note: this is conceptually equivalent to how we can't necessarily delay bugs or create `ty::Error` during trait solving/fulfillment, since the compiler is allowed to throw away these fulfillment errors to do other things. It's only once we actually emit an error (`report_region_errors` / `report_fulfillment_errors`)
      4d9effc6
    • M
      Rollup merge of #107736 - tgross35:atomic-as-ptr, r=m-ou-se · 0982eab8
      Matthias Krüger 提交于
       Rename atomic 'as_mut_ptr' to 'as_ptr' to match Cell (ref #66893)
      
      Originally discussed in https://github.com/rust-lang/rust/issues/66893#issuecomment-1419198623
      
      ~~This uses #107706 as a base to avoid a merge conflict once that gets rolled up (so disregard const changes in the diff until it does)~~ all merged & rebased
      
      `@rustbot` label +T-libs-api
      r? m-ou-se
      0982eab8
    • B
      Auto merge of #108340 - eggyal:remove_traversal_trait_aliases, r=oli-obk · fdbc4329
      bors 提交于
      Remove type-traversal trait aliases
      
      #107924 moved the type traversal (folding and visiting) traits into the type library, but created trait aliases in `rustc_middle` to minimise both the API churn for trait consumers and the arising boilerplate.  As mentioned in that PR, an alternative approach of defining subtraits with blanket implementations of the respective supertraits was also considered at that time but was ruled out as not adding much value.
      
      Unfortunately, it has since emerged that rust-analyzer has difficulty with these trait aliases at present, resulting in a degraded contributor experience (see the recent [r-a has become useless](https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp/topic/r-a.20has.20become.20useless) topic on the #t-compiler/help Zulip stream).
      
      This PR removes the trait aliases, and accordingly the underlying type library traits are now used directly; they are parameterised by `TyCtxt<'tcx>` rather than just the `'tcx` lifetime, and imports have been updated to reflect the fact that the trait aliases' explicitly named traits are no longer automatically brought into scope.  These changes also roll-back the (no-longer required) workarounds to #107747 that were made in b409329c.
      
      Since this PR is just a find+replace together with the changes necessary for compilation & tidy to pass, it's currently just one mega-commit.  Let me know if you'd like it broken up.
      
      r? `@oli-obk`
      fdbc4329
    • V
      resolve: Remove `ImportResolver` · d275114b
      Vadim Petrochenkov 提交于
      It's a trivial wrapper over `Resolver` that doesn't bring any benefits
      d275114b
    • A
      Normalize line+col in normalize-tait-in-const test · a9b2354a
      Alan Egerton 提交于
      a9b2354a
    • A
      Remove type-traversal trait aliases · 695072da
      Alan Egerton 提交于
      695072da
    • G
      20dd1bd9
    • G
      Prevent duplicated imports · 4aa142ee
      Guillaume Gomez 提交于
      4aa142ee
  3. 22 2月, 2023 7 次提交