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 29 pull requests #33610

Closed
wants to merge 78 commits into from
Closed

Rollup of 29 pull requests #33610

wants to merge 78 commits into from

Commits on May 9, 2016

  1. trans: Always lower to frem

    Long ago LLVM unfortunately didn't handle the 32-bit MSVC case of `frem` where
    it can't be lowered to `fmodf` because that symbol doesn't exist. That was since
    fixed in http://reviews.llvm.org/D12099 (landed as r246615) and was released in
    what appears to be LLVM 3.8. Now that we're using that branch of LLVM let's
    remove our own hacks and help LLVM optimize a little better by giving it
    knowledge about what we're doing.
    alexcrichton committed May 9, 2016
    Configuration menu
    Copy the full SHA
    96b2288 View commit details
    Browse the repository at this point in the history

Commits on May 10, 2016

  1. Configuration menu
    Copy the full SHA
    df572fc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    417fe6d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    eed8d70 View commit details
    Browse the repository at this point in the history
  4. Remove needless pubs

    jseyfried committed May 10, 2016
    Configuration menu
    Copy the full SHA
    8d5c578 View commit details
    Browse the repository at this point in the history
  5. Copy more libraries from local Rust to stage0

    When bootstrapping Rust using a previously built toolchain, I noticed
    a number of libraries were not copied in. As a result the copied in
    rustc fails to execute because it can't find all its dependences.
    
    Add them into the local_stage0.sh script.
    antonblanchard committed May 10, 2016
    Configuration menu
    Copy the full SHA
    0a38089 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    946efcd View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    3927ff4 View commit details
    Browse the repository at this point in the history
  8. Refactor hir::lowering API

    jseyfried committed May 10, 2016
    Configuration menu
    Copy the full SHA
    33978b0 View commit details
    Browse the repository at this point in the history
  9. Simplify text

    dns2utf8 committed May 10, 2016
    Configuration menu
    Copy the full SHA
    66404f3 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    9ac468b View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    8d3531d View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    e919f25 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    e5a91b7 View commit details
    Browse the repository at this point in the history
  14. Add error description for E0455

    - Adding name attribute to the sample code - Fix description sentences
    cristianoliveira committed May 10, 2016
    Configuration menu
    Copy the full SHA
    85e0242 View commit details
    Browse the repository at this point in the history

Commits on May 11, 2016

  1. Configuration menu
    Copy the full SHA
    7a9f4c2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5511e65 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c0e321a View commit details
    Browse the repository at this point in the history
  4. Only break critical edges where actually needed

    Currently, to prepare for MIR trans, we break _all_ critical edges,
    although we only actually need to do this for edges originating from a
    call that gets translated to an invoke instruction in LLVM.
    
    This has the unfortunate effect of undoing a bunch of the things that
    SimplifyCfg has done. A particularly bad case arises when you have a
    C-like enum with N variants and a derived PartialEq implementation.
    
    In that case, the match on the (&lhs, &rhs) tuple gets translated into
    nested matches with N arms each and a basic block each, resulting in N²
    basic blocks. SimplifyCfg reduces that to roughly 2*N basic blocks, but
    breaking the critical edges means that we go back to N².
    
    In nickel.rs, there is such an enum with roughly N=800. So we get about
    640K basic blocks or 2.5M lines of LLVM IR. LLVM takes a while to
    reduce that to the final "disr_a == disr_b".
    
    So before this patch, we had 2.5M lines of IR with 640K basic blocks,
    which took about about 3.6s in LLVM to get optimized and translated.
    After this patch, we get about 650K lines with about 1.6K basic blocks
    and spent a little less than 0.2s in LLVM.
    
    cc rust-lang#33111
    dotdash committed May 11, 2016
    Configuration menu
    Copy the full SHA
    00f6513 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    5541fdf View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    4e5a2e0 View commit details
    Browse the repository at this point in the history
  7. Export OnceState from libstd

    Amanieu committed May 11, 2016
    Configuration menu
    Copy the full SHA
    c91b104 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    5cbfa12 View commit details
    Browse the repository at this point in the history
  9. [MIR trans] Optimize trans for biased switches

    Currently, all switches in MIR are exhausitive, meaning that we can have
    a lot of arms that all go to the same basic block, the extreme case
    being an if-let expression which results in just 2 possible cases, be
    might end up with hundreds of arms for large enums.
    
    To improve this situation and give LLVM less code to chew on, we can
    detect whether there's a pre-dominant target basic block in a switch
    and then promote this to be the default target, not translating the
    corresponding arms at all.
    
    In combination with rust-lang#33544 this makes unoptimized MIR trans of
    nickel.rs as fast as using old trans and greatly improves the times for
    optimized builds, which are only 30-40% slower instead of ~300%.
    
    cc rust-lang#33111
    dotdash committed May 11, 2016
    Configuration menu
    Copy the full SHA
    49b2cdf View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    fd70788 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    5af829b View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    8628cce View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    ec7c483 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    d3218fa View commit details
    Browse the repository at this point in the history

Commits on May 12, 2016

  1. Configuration menu
    Copy the full SHA
    f52b655 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6458b04 View commit details
    Browse the repository at this point in the history
  3. Tighten span for E0063

    sanxiyn committed May 12, 2016
    Configuration menu
    Copy the full SHA
    a7902b1 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3c2ec13 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    fc0872a View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    06e00c4 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    073f289 View commit details
    Browse the repository at this point in the history
  8. typeck: if a private field exists, also check for a public method

    For example, `Vec::len` is both a field and a method, and usually
    encountering `vec.len` just means that the parens were forgotten.
    
    Fixes: rust-lang#26472
    birkenfeld committed May 12, 2016
    Configuration menu
    Copy the full SHA
    843b174 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    c331032 View commit details
    Browse the repository at this point in the history
  10. update "reason" for fnbox feature gate

    It isn't "newly introduced" anymore.
    durka committed May 12, 2016
    Configuration menu
    Copy the full SHA
    df4fe5f View commit details
    Browse the repository at this point in the history
  11. fix tidy

    durka committed May 12, 2016
    Configuration menu
    Copy the full SHA
    b9fce76 View commit details
    Browse the repository at this point in the history
  12. Don't use env::current_exe with libbacktrace

    If the path we give to libbacktrace doesn't actually correspond to the
    current process, libbacktrace will segfault *at best*.
    
    cc rust-lang#21889
    sfackler committed May 12, 2016
    Configuration menu
    Copy the full SHA
    9393e52 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    f7362ca View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    ff3a1ce View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    749494e View commit details
    Browse the repository at this point in the history
  16. re-introduce a cache for ast-ty-to-ty

    It turns out that `ast_ty_to_ty` is supposed to be updating the `def`
    after it finishes, but at some point in the past it stopped doing
    so. This was never noticed because of the `ast_ty_to_ty_cache`, but that
    cache was recently removed. This PR fixes the code to update the def
    properly, but apparently that is not quite enough to make the operation
    idempotent, so for now we reintroduce the cache too.
    
    Fixes rust-lang#33425.
    nikomatsakis committed May 12, 2016
    Configuration menu
    Copy the full SHA
    aa00e3a View commit details
    Browse the repository at this point in the history
  17. Improve derived implementations for enums with lots of fieldless vari…

    …ants
    
    A number of trait methods like PartialEq::eq or Hash::hash don't
    actually need a distinct arm for each variant, because the code within
    the arm only depends on the number and types of the fields in the
    variants. We can easily exploit this fact to create less and better
    code for enums with multiple variants that have no fields at all, the
    extreme case being C-like enums.
    
    For nickel.rs and its by now infamous 800 variant enum, this reduces
    optimized compile times by 25% and non-optimized compile times by 40%.
    Also peak memory usage is down by almost 40% (310MB down to 190MB).
    
    To be fair, most other crates don't benefit nearly as much, because
    they don't have as huge enums. The crates in the Rust distribution that
    I measured saw basically no change in compile times (I only tried
    optimized builds) and only 1-2% reduction in peak memory usage.
    dotdash committed May 12, 2016
    Configuration menu
    Copy the full SHA
    0eeb14e View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    538de73 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    d4bff0c View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    adee551 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    8ad6d27 View commit details
    Browse the repository at this point in the history

Commits on May 13, 2016

  1. Rollup merge of rust-lang#33342 - birkenfeld:issue-26472, r=jseyfried

    typeck: if a private field exists, also check for a public method
    
    For example, `Vec::len` is both a field and a method, and usually encountering `vec.len` just means that the parens were forgotten.
    
    Fixes: rust-lang#26472
    
    NOTE: I added the parameter `allow_private` to `method::exists` since I don't want to suggest inaccessible methods. For the second case, where only the method exists, I think it would make sense to set it to `false` as well, but I wanted to preserve compatibility for this case.
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    bb7d0ce View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#33393 - cristianoliveira:docs-error-explana…

    …tion, r=steveklabnik
    
    Add error description for E0455
    
    r? @GuillaumeGomez.
    
    About this error there is no much thing to explain. The short description says enough to understand. Feel free to review.
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    be92e9b View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#33508 - alexcrichton:always-lower-frem, r=n…

    …ikomatsakis
    
    trans: Always lower to `frem`
    
    Long ago LLVM unfortunately didn't handle the 32-bit MSVC case of `frem` where
    it can't be lowered to `fmodf` because that symbol doesn't exist. That was since
    fixed in http://reviews.llvm.org/D12099 (landed as r246615) and was released in
    what appears to be LLVM 3.8. Now that we're using that branch of LLVM let's
    remove our own hacks and help LLVM optimize a little better by giving it
    knowledge about what we're doing.
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    6859599 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#33513 - sanxiyn:tab-in-error, r=nikomatsakis

    Better handling of tab in error
    
    cc rust-lang#33240.
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    82fd37c View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#33517 - sanxiyn:tight-span, r=nagisa

    Tighten span for E0063
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    5637db9 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#33531 - antonblanchard:local_stage0_fix, r=…

    …alexcrichton
    
    Copy more libraries from local Rust to stage0
    
    When bootstrapping Rust using a previously built toolchain, I noticed
    a number of libraries were not copied in. As a result the copied in
    rustc fails to execute because it can't find all its dependences.
    
    Add them into the local_stage0.sh script.
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    673d686 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#33532 - jseyfried:mutable_lowering_context,…

    … r=nrc
    
    Clean up `hir::lowering`
    
    Clean up `hir::lowering`:
     - give lowering functions mutable access to the lowering context
     - refactor the `lower_*` functions and other functions that take a lowering context into methods
     - simplify the API that `hir::lowering` exposes to `driver`
     - other miscellaneous cleanups
    
    r? @nrc
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    76794b6 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#33533 - GuillaumeGomez:add_E0500, r=stevekl…

    …abnik
    
    Add E0500 error explanation
    
    r? @Manishearth
    
    Part of rust-lang#32777.
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    e141d95 View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#33534 - dns2utf8:atomic_docs, r=GuillaumeGomez

    Simplify text
    
    This way it should be clear: Any number of other threads have this guaranty not just one other thread.
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    dbf812f View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#33538 - Ms2ger:LocalCrateReader, r=arielb1

    Refactor code around LocalCrateReader.
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    b3ecd27 View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#33541 - eddyb:promote-only-temps, r=arielb1

    mir: don't attempt to promote Unpromotable constant temps.
    
    Fixes rust-lang#33537. This was a non-problem in regular functions, but we also promote in `const fn`s.
    There we always qualify temps so you can't depend on `Unpromotable` temps being `NOT_CONST`.
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    5a48beb View commit details
    Browse the repository at this point in the history
  12. Rollup merge of rust-lang#33544 - dotdash:baby_dont_break_me_no_more,…

    … r=Aatch
    
    Only break critical edges where actually needed
    
    Currently, to prepare for MIR trans, we break _all_ critical edges,
    although we only actually need to do this for edges originating from a
    call that gets translated to an invoke instruction in LLVM.
    
    This has the unfortunate effect of undoing a bunch of the things that
    SimplifyCfg has done. A particularly bad case arises when you have a
    C-like enum with N variants and a derived PartialEq implementation.
    
    In that case, the match on the (&lhs, &rhs) tuple gets translated into
    nested matches with N arms each and a basic block each, resulting in N²
    basic blocks. SimplifyCfg reduces that to roughly 2*N basic blocks, but
    breaking the critical edges means that we go back to N².
    
    In nickel.rs, there is such an enum with roughly N=800. So we get about
    640K basic blocks or 2.5M lines of LLVM IR. LLVM takes a while to
    reduce that to the final "disr_a == disr_b".
    
    So before this patch, we had 2.5M lines of IR with 640K basic blocks,
    which took about about 3.6s in LLVM to get optimized and translated.
    After this patch, we get about 650K lines with about 1.6K basic blocks
    and spent a little less than 0.2s in LLVM.
    
    cc rust-lang#33111
    
    r? @Aatch
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    96b6e8f View commit details
    Browse the repository at this point in the history
  13. Rollup merge of rust-lang#33552 - dotdash:scfg, r=luqmana

    [MIR] Enhance the SimplifyCfg pass to merge consecutive blocks
    
    Updated from rust-lang#30238, including the changes suggested by @Aatch.
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    494bc14 View commit details
    Browse the repository at this point in the history
  14. Rollup merge of rust-lang#33554 - sfackler:no-current-exe, r=alexcric…

    …hton
    
    Don't use env::current_exe with libbacktrace
    
    If the path we give to libbacktrace doesn't actually correspond to the
    current process, libbacktrace will segfault *at best*.
    
    cc rust-lang#21889
    
    r? @alexcrichton
    cc @semarie
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    bab9fa2 View commit details
    Browse the repository at this point in the history
  15. Rollup merge of rust-lang#33555 - soltanmm:ambiguous-nixon, r=nikomat…

    …sakis
    
    Remove unification despite ambiguity in projection
    
    Turns out that closures aren't explicitly considered in `project.rs`, so the ambiguity handling w.r.t. closures can just be removed as the change done in `select.rs` covers it.
    
    r? @nikomatsakis
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    c3e0529 View commit details
    Browse the repository at this point in the history
  16. Rollup merge of rust-lang#33560 - eddyb:symtidy, r=alexcrichton

    Use symlink_metadata in tidy to avoid panicking on broken symlinks.
    
    r? @alexcrichton
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    bf535f3 View commit details
    Browse the repository at this point in the history
  17. Rollup merge of rust-lang#33563 - Amanieu:oncestate, r=alexcrichton

    Export OnceState from libstd
    
    This type is used in the signature of `call_once_force` but isn't exported from libstd.
    
    r? @alexcrichton
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    dc37d09 View commit details
    Browse the repository at this point in the history
  18. Rollup merge of rust-lang#33565 - Amanieu:once_doc, r=GuillaumeGomez

    Fix typo in std::sync::Once documentation
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    a8a491a View commit details
    Browse the repository at this point in the history
  19. Rollup merge of rust-lang#33566 - dotdash:biased_switch, r=nagisa

    [MIR trans] Optimize trans for biased switches
    
    Currently, all switches in MIR are exhausitive, meaning that we can have
    a lot of arms that all go to the same basic block, the extreme case
    being an if-let expression which results in just 2 possible cases, be
    might end up with hundreds of arms for large enums.
    
    To improve this situation and give LLVM less code to chew on, we can
    detect whether there's a pre-dominant target basic block in a switch
    and then promote this to be the default target, not translating the
    corresponding arms at all.
    
    In combination with rust-lang#33544 this makes unoptimized MIR trans of
    nickel.rs as fast as using old trans and greatly improves the times for
    optimized builds, which are only 30-40% slower instead of ~300%.
    
    cc rust-lang#33111
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    8942994 View commit details
    Browse the repository at this point in the history
  20. Rollup merge of rust-lang#33572 - nagisa:assoc-const-types, r=eddyb

    Support references to outer type params for assoc consts
    
    Fixes rust-lang#28809
    
    r? @eddyb
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    1879aaa View commit details
    Browse the repository at this point in the history
  21. Rollup merge of rust-lang#33576 - soltanmm:vtable, r=nikomatsakis

    Plumb inference obligations through selection, take 2
    
    Using a `SnapshotVec` and dumping inferred obligations into `Vtable` variants.
    
    r? @nikomatsakis
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    2c55f77 View commit details
    Browse the repository at this point in the history
  22. Rollup merge of rust-lang#33580 - frewsxcv:temp-dir, r=alexcrichton

    Cleanup formatting and wording for `std::env::temp_dir` docs.
    
    None
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    88ecbc4 View commit details
    Browse the repository at this point in the history
  23. Rollup merge of rust-lang#33590 - durka:patch-22, r=aturon

    update "reason" for fnbox feature gate
    
    It isn't "newly introduced" anymore.
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    0018516 View commit details
    Browse the repository at this point in the history
  24. Rollup merge of rust-lang#33593 - dotdash:smart_derive, r=brson

    Improve derived implementations for enums with lots of fieldless variants
    
    A number of trait methods like PartialEq::eq or Hash::hash don't
    actually need a distinct arm for each variant, because the code within
    the arm only depends on the number and types of the fields in the
    variants. We can easily exploit this fact to create less and better
    code for enums with multiple variants that have no fields at all, the
    extreme case being C-like enums.
    
    For nickel.rs and its by now infamous 800 variant enum, this reduces
    optimized compile times by 25% and non-optimized compile times by 40%.
    Also peak memory usage is down by almost 40% (310MB down to 190MB).
    
    To be fair, most other crates don't benefit nearly as much, because
    they don't have as huge enums. The crates in the Rust distribution that
    I measured saw basically no change in compile times (I only tried
    optimized builds) and only 1-2% reduction in peak memory usage.
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    31d4b35 View commit details
    Browse the repository at this point in the history
  25. Rollup merge of rust-lang#33596 - nikomatsakis:issue-33586-regr-assoc…

    …-type-path, r=eddyb
    
    re-introduce a cache for ast-ty-to-ty
    
    It turns out that `ast_ty_to_ty` is supposed to be updating the `def`
    after it finishes, but at some point in the past it stopped doing
    so. This was never noticed because of the `ast_ty_to_ty_cache`, but that
    cache was recently removed. This PR fixes the code to update the def
    properly, but apparently that is not quite enough to make the operation
    idempotent, so for now we reintroduce the cache too.
    
    Fixes rust-lang#33586.
    
    r? @eddyb
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    73f75cc View commit details
    Browse the repository at this point in the history
  26. Rollup merge of rust-lang#33598 - haikoschol:master, r=alexcrichton

    doc: Fix comment in std::string::String example code
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    d1ab5d2 View commit details
    Browse the repository at this point in the history
  27. Rollup merge of rust-lang#33600 - ollie27:rustdoc_impl_params, r=alex…

    …crichton
    
    rustdoc: Fix missing type parameters on impls
    
    They were broken by rust-lang#32558.
    
    Fixes: rust-lang#33592
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    f657a30 View commit details
    Browse the repository at this point in the history
  28. Rollup merge of rust-lang#33602 - eddyb:no-trans--check, r=michaelwoe…

    …rister
    
    Save metadata even with -Z no-trans (e.g. for multi-crate cargo check).
    
    Removes the item symbol map in metadata, as we can now generate them in a deterministic manner.
    The `-Z no-trans` change lets the LLVM passes and linking run, but with just metadata and no code.
    It fails while trying to link a binary because there's no `main` function, which is correct but not good UX.
    
    There's also no way to easily throw away all of the artifacts to rebuild with actual code generation.
    We might want `cargo check` to do that using cargo-internal information and then it would just work.
    
    cc @alexcrichton @nikomatsakis @Aatch @michaelwoerister
    eddyb committed May 13, 2016
    Configuration menu
    Copy the full SHA
    96297ea View commit details
    Browse the repository at this point in the history