1. 20 8月, 2019 20 次提交
    • S
      c561abee
    • B
      Auto merge of #63497 - eddyb:miri-subst, r=oli-obk · 7858dc23
      bors 提交于
      rustc_mir: fix miri substitution/"universe" discipline.
      
      Alternative to #61041, based on @RalfJung's own attempt at it.
      I haven't done a full audit, but I believe everything is fixed now.
      
      Fixes #61432.
      Closes #61336, as a drive-by fix (for a subset of #43408, that is already special-cased).
      
      r? @oli-obk / @RalfJung cc @varkor @yodaldevoid
      7858dc23
    • B
    • S
    • B
      Auto merge of #63715 - Centril:rollup-dga8qtp, r=Centril · c1b08dd2
      bors 提交于
      Rollup of 5 pull requests
      
      Successful merges:
      
       - #63252 (Remove recommendation about idiomatic syntax for Arc::clone)
       - #63376 (use different lifetime name for object-lifetime-default elision)
       - #63620 (Use constraint span when lowering associated types)
       - #63699 (Fix suggestion from incorrect `move async` to `async move`.)
       - #63704 ( Fixed: error: unnecessary trailing semicolon)
      
      Failed merges:
      
      r? @ghost
      c1b08dd2
    • M
      Rollup merge of #63704 - Wind-River:master, r=Centril · ac345942
      Mazdak Farrokhzad 提交于
       Fixed: error: unnecessary trailing semicolon
      ac345942
    • M
      Rollup merge of #63699 - gilescope:async-move-diagnostic, r=estebank · 2c0f05a0
      Mazdak Farrokhzad 提交于
      Fix suggestion from incorrect `move async` to `async move`.
      
      PR for #61920. Happy with the test. There must be a better implementation though - possibly a MIR visitor to estabilsh a span that doesn't include the `async` keyword?
      2c0f05a0
    • M
      Rollup merge of #63620 - estebank:assoc-type-span, r=Centril · a2080a60
      Mazdak Farrokhzad 提交于
      Use constraint span when lowering associated types
      
      Fix #63594.
      
      r? @Centril
      a2080a60
    • M
      Rollup merge of #63376 - nikomatsakis:async-await-issue-62517, r=cramertj · bece1177
      Mazdak Farrokhzad 提交于
      use different lifetime name for object-lifetime-default elision
      
      Introduce a distinct value for `LifetimeName` to use when this is a object-lifetime-default elision. This allows us to avoid creating incorrect lifetime parameters for the opaque types that result. We really need to overhaul this setup at some point! It's getting increasingly byzantine. But this seems like a relatively... surgical fix.
      
      r? @cramertj
      
      Fixes #62517
      bece1177
    • M
      Rollup merge of #63252 - nrc:arc-doc, r=alexcrichton · 4486c026
      Mazdak Farrokhzad 提交于
      Remove recommendation about idiomatic syntax for Arc::clone
      
      I believe we should not make this recommendation. I don't want to argue that `Arc::clone` is less idiomatic than `arc.clone`, but that the choice is not clear cut and that we should not be making this kind of call in the docs.
      
      The `.clone()` form has advantages too: it is more succinct, it is more likely to be understood by beginners, and it is more uniform with other `clone` calls, indeed with most other method calls.
      
      Whichever approach is better, I think that this discussion belongs in a style guide or textbook, rather than the library docs. We don't talk much about idiomatic code in the docs, this place is pretty exceptional.
      
      The recommendation is also not followed in this repo. It is hard to figure out how many calls there are of the `.clone()` form, but there are 1550 uses of `Arc` and only 65 uses of `Arc::clone`. The recommendation has existed for over two years.
      
      The recommendation was added in https://github.com/rust-lang/rust/pull/42137, as a result of https://github.com/rust-lang/rfcs/pull/1954. However, note that that RFC was closed because it was not necessary to change the docs (the original RFC proposed a new function instead). So I don't think an RFC is necessary here (and I'm not trying to re-litigate the discussion on that RFC (which favoured `Arc::clone` as idiomatic) in any case).
      
      cc @nical (who added the docs in the first place; sorry :-) )
      
      r? @alexcrichton (or someone else on @rust-lang/libs )
      4486c026
    • E
      review comments · 1808e4da
      Esteban Küber 提交于
      1808e4da
    • E
      Use constraint span when lowering associated types · 94ee54c4
      Esteban Küber 提交于
      94ee54c4
    • N
      adjust test to be check-pass · 7ee1af51
      Niko Matsakis 提交于
      7ee1af51
    • N
      use static as object-lifetime default for type XX in `Foo<Item=XX>` · 832199ee
      Niko Matsakis 提交于
      Currently the default is "inherited" from context, so e.g.  `&impl
      Foo<Item = dyn Bar>` would default to `&'x impl Foo<Item = dyn Bar +
      'x>`, but this triggers an ICE and is not very consistent.
      
      This patch doesn't implement what I expect would be the correct
      semantics, because those are likely too complex. Instead, it handles
      what I'd expect to be the common case -- where the trait has no
      lifetime parameters.
      832199ee
    • N
      distinguish object-lifetime-default elision from other elision · af86fb19
      Niko Matsakis 提交于
      Object-lifetime-default elision is distinct from other forms of
      elision; it always refers to some enclosing lifetime *present in the
      surrounding type* (e.g., `&dyn Bar` expands to `&'a (dyn Bar + 'a)`.
      If there is no enclosing lifetime, then it expands to `'static`.
      
      Therefore, in an `impl Trait<Item = dyn Bar>` setting, we don't expand
      to create a lifetime parameter for the `dyn Bar + 'X` bound.  It will
      just be resolved to `'static`.
      
      Annoyingly, the responsibility for this resolution is spread across
      multiple bits of code right now (`middle::resolve_lifetimes`,
      `lowering`). The lowering code knows that the default is for an object
      lifetime, but it doesn't know what the correct result would be.
      Probably this should be fixed, but what we do now is a surgical fix:
      we have it generate a different result for elided lifetimes in a
      object context, and then we can ignore those results when figuring out
      the lifetimes that are captured in the opaque type.
      af86fb19
    • N
      add debug logs · b51df1de
      Niko Matsakis 提交于
      b51df1de
    • B
      Auto merge of #63579 - alexcrichton:new-lockfile, r=Mark-Simulacrum · 29a54035
      bors 提交于
      Use to Cargo's experimental lockfile format
      
      This commit changes the lock file format of this repository to an
      experimental format that isn't rolled out by default in Cargo but is
      intended to eventually become the default. The new format moves
      information around and compresses the lock file a bit. The intention of
      the new format is to reduce the amount of git merge conflicts that
      happen in a repository, with rust-lang/rust being a prime candidate for
      testing this.
      
      The new format wille ventually become the default but for now it is
      off-by-default in Cargo, but Cargo will preserve the format if it sees
      it. Since we always build with a beta version of Cargo for the
      rust-lang/rust repository it should be safe to go ahead and change the
      lock file format here and everyone building this repository will
      automatically pick it up.
      
      It's intended that we'll evaluate this lock file format in the
      rust-lang/rust repository to see if it reduces the number of perceived
      merge conflicts for changes that touch the lock file. This will in turn
      help inform the development of the feature in Cargo and whether we
      choose to stabilize this and turn it on by default.
      
      Note that this commit does not actually change the contents of the lock
      file in terms of a resolution graph, it simply reencodes the lock file
      with a new format.
      29a54035
    • A
      Use to Cargo's experimental lockfile format · 093ede24
      Alex Crichton 提交于
      This commit changes the lock file format of this repository to an
      experimental format that isn't rolled out by default in Cargo but is
      intended to eventually become the default. The new format moves
      information around and compresses the lock file a bit. The intention of
      the new format is to reduce the amount of git merge conflicts that
      happen in a repository, with rust-lang/rust being a prime candidate for
      testing this.
      
      The new format wille ventually become the default but for now it is
      off-by-default in Cargo, but Cargo will preserve the format if it sees
      it. Since we always build with a beta version of Cargo for the
      rust-lang/rust repository it should be safe to go ahead and change the
      lock file format here and everyone building this repository will
      automatically pick it up.
      
      It's intended that we'll evaluate this lock file format in the
      rust-lang/rust repository to see if it reduces the number of perceived
      merge conflicts for changes that touch the lock file. This will in turn
      help inform the development of the feature in Cargo and whether we
      choose to stabilize this and turn it on by default.
      
      Note that this commit does not actually change the contents of the lock
      file in terms of a resolution graph, it simply reencodes the lock file
      with a new format.
      093ede24
    • E
      test: add test for #61432. · 96fc9890
      Eduard-Mihai Burtescu 提交于
      96fc9890
    • G
      Fix suggestion from move async to async move. · ef3e66d6
      Giles Cope 提交于
      ef3e66d6
  2. 19 8月, 2019 17 次提交
  3. 18 8月, 2019 3 次提交