Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 4 pull requests #59636

Merged
merged 16 commits into from
Apr 2, 2019
Merged

Rollup of 4 pull requests #59636

merged 16 commits into from
Apr 2, 2019

Commits on Mar 23, 2019

  1. resolve: collect trait aliases along with traits

    seanmonstar authored and Alexander Regueiro committed Mar 23, 2019
    Configuration menu
    Copy the full SHA
    a2b6734 View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2019

  1. Configuration menu
    Copy the full SHA
    8fe1087 View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2019

  1. Added an example that shows how the remainder function on floating po…

    …int values is computed internally.
    Christian committed Mar 30, 2019
    Configuration menu
    Copy the full SHA
    ea369cb View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2019

  1. Fix custom relative libdir.

    Uses relative libdir to place libraries on all stages.
    Adds verbose installation output.
    o01eg committed Mar 31, 2019
    Configuration menu
    Copy the full SHA
    5bcc365 View commit details
    Browse the repository at this point in the history

Commits on Apr 1, 2019

  1. Fix stack overflow when generating debuginfo for 'recursive' type

    By using 'impl trait', it's possible to create a self-referential
    type as follows:
    
    fn foo() -> impl Copy { foo }
    
    This is a function which returns itself.
    Normally, the signature of this function would be impossible
    to write - it would look like 'fn foo() -> fn() -> fn() ...'
    e.g. a function which returns a function, which returns a function...
    
    Using 'impl trait' allows us to avoid writing this infinitely long
    type. While it's useless for practical purposes, it does compile and run
    
    However, issues arise when we try to generate llvm debuginfo for such a
    type. All 'impl trait' types (e.g. ty::Opaque) are resolved when we
    generate debuginfo, which can lead to us recursing back to the original
    'fn' type when we try to process its return type.
    
    To resolve this, I've modified debuginfo generation to account for these
    kinds of weird types. Unfortunately, there's no 'correct' debuginfo that
    we can generate - 'impl trait' does not exist in debuginfo, and this
    kind of recursive type is impossible to directly represent.
    
    To ensure that we emit *something*, this commit emits dummy
    debuginfo/type names whenever it encounters a self-reference. In
    practice, this should never happen - it's just to ensure that we can
    emit some kind of debuginfo, even if it's not particularly meaningful
    
    Fixes rust-lang#58463
    Aaron1011 committed Apr 1, 2019
    Configuration menu
    Copy the full SHA
    512069f View commit details
    Browse the repository at this point in the history
  2. Fix inverted panic check

    Aaron1011 committed Apr 1, 2019
    Configuration menu
    Copy the full SHA
    e1837a0 View commit details
    Browse the repository at this point in the history
  3. Add codegen test

    Aaron1011 committed Apr 1, 2019
    Configuration menu
    Copy the full SHA
    aed7ec4 View commit details
    Browse the repository at this point in the history
  4. Fix typos

    Aaron1011 committed Apr 1, 2019
    Configuration menu
    Copy the full SHA
    c4556a5 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d2584e3 View commit details
    Browse the repository at this point in the history
  6. Fix typo

    Aaron1011 authored Apr 1, 2019
    Configuration menu
    Copy the full SHA
    c13daeb View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    3ccd35c View commit details
    Browse the repository at this point in the history
  8. Improved the example with numbers that can be exactly represented as …

    …floats and added a comment with the solution.
    Christian committed Apr 1, 2019
    Configuration menu
    Copy the full SHA
    a1c7905 View commit details
    Browse the repository at this point in the history

Commits on Apr 2, 2019

  1. Rollup merge of rust-lang#59166 - seanmonstar:trait-alias-import, r=a…

    …lexreg
    
    resolve: collect trait aliases along with traits
    
    It seems trait aliases weren't being collected as `TraitCandidates` in resolve, this should change that. (I can't compile the full compiler locally, so relying on CI...)
    
    Fixes rust-lang#56485
    
    r? @alexreg
    Centril authored Apr 2, 2019
    Configuration menu
    Copy the full SHA
    a2f3f0c View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#59341 - o01eg:use-custom-libdir, r=Mark-Sim…

    …ulacrum
    
    Fix custom relative libdir
    
    While working on rust-lang#58947 I found out relative libdir ignored during setting LD_LIBRARY_PATH.
    Centril authored Apr 2, 2019
    Configuration menu
    Copy the full SHA
    6bd01ef View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#59446 - Aaron1011:fix/debuginfo-overflow, r…

    …=oli-obk
    
    Fix stack overflow when generating debuginfo for 'recursive' type
    
    By using 'impl trait', it's possible to create a self-referential
    type as follows:
    
    fn foo() -> impl Copy { foo }
    
    This is a function which returns itself.
    Normally, the signature of this function would be impossible
    to write - it would look like 'fn foo() -> fn() -> fn() ...'
    e.g. a function which returns a function, which returns a function...
    
    Using 'impl trait' allows us to avoid writing this infinitely long
    type. While it's useless for practical purposes, it does compile and run
    
    However, issues arise when we try to generate llvm debuginfo for such a
    type. All 'impl trait' types (e.g. ty::Opaque) are resolved when we
    generate debuginfo, which can lead to us recursing back to the original
    'fn' type when we try to process its return type.
    
    To resolve this, I've modified debuginfo generation to account for these
    kinds of weird types. Unfortunately, there's no 'correct' debuginfo that
    we can generate - 'impl trait' does not exist in debuginfo, and this
    kind of recursive type is impossible to directly represent.
    
    To ensure that we emit *something*, this commit emits dummy
    debuginfo/type names whenever it encounters a self-reference. In
    practice, this should never happen - it's just to ensure that we can
    emit some kind of debuginfo, even if it's not particularly meaningful
    
    Fixes rust-lang#58463
    Centril authored Apr 2, 2019
    Configuration menu
    Copy the full SHA
    57a4f17 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#59529 - DevQps:improve-rem-docs, r=cuviper

    Added documentation on the remainder (Rem) operator for floating points.
    
    # Description
    
    As has been explained in rust-lang#57738 the remainder operator on floating points is not clear.
    This PR requests adds some information on how the `Rem` / remainder operator on floating points works.
    
    Note also that this description is for both `Rem<f32> for f32` and `Rem<f64> for f64` implementations.
    
    Ps. I wasn't really sure on how to formulate things. So please suggest changes if you have better idea's!
    
    closes rust-lang#57738
    Centril authored Apr 2, 2019
    Configuration menu
    Copy the full SHA
    21e2e98 View commit details
    Browse the repository at this point in the history