1. 02 2月, 2018 7 次提交
    • K
      Rollup merge of #47842 - Manishearth:dead-code, r=nagisa Remove dead code The... · a6719446
      kennytm 提交于
      Rollup merge of #47842 - Manishearth:dead-code, r=nagisa Remove dead code The Clone impl makes the lint ignore the type.
      a6719446
    • K
      Rollup merge of #47829 - estebank:break-in-for, r=cramertj Suggest removing... · 0f36b2cf
      kennytm 提交于
      Rollup merge of #47829 - estebank:break-in-for, r=cramertj Suggest removing value from `break` when invalid When attempting to use `break` with a value in a type of loop where it'd be invalid (any non-`loop`), suggest using `break` on its own. Close #34359.
      0f36b2cf
    • K
      Rollup merge of #46156 - SimonSapin:patch-14, r=withoutboats · 3600bfb3
      kennytm 提交于
      Document the size of bool
      3600bfb3
    • B
      Auto merge of #47465 - estebank:include-space-after-mut, r=nikomatsakis · 616b66dc
      bors 提交于
      Include space in suggestion `mut` in bindings
      
      Fix #46614.
      616b66dc
    • M
      Remove dead code · c7850139
      Manish Goregaokar 提交于
      c7850139
    • B
      Auto merge of #47102 - Diggsey:wasm-syscall, r=alexcrichton · 6741e416
      bors 提交于
      Implement extensible syscall interface for wasm
      
      Currently it's possible to run tests with the native wasm target, but it's not possible to tell whether they pass or to capture the output, because libstd throws away stdout, stderr and the exit code. While advanced libstd features should probably require more specific targets (eg. wasm-unknown-web) I think even the unknown target should at least support basic I/O.
      
      Any solution is constrained by these factors:
      - It must not be javascript specific
      - There must not be too strong coupling between libstd and the host environment (because it's an "unknown" target)
      - WebAssembly does not allow "optional" imports - all imports *must* be resolved.
      - WebAssembly does not support calling the host environment through any channel *other* than imports.
      
      The best solution I could find to these constraints was to give libstd a single required import, and implement a syscall-style interface through that import. Each syscall is designed such that a no-op implementation gives the most reasonable fallback behaviour. This means that the following import table would be perfectly valid:
      ```javascript
      imports.env = { rust_wasm_syscall: function(index, data) {} }
      ```
      
      Currently I have implemented these system calls:
      - Read from stdin
      - Write to stdout/stderr
      - Set the exit code
      - Get command line arguments
      - Get environment variable
      - Set environment variable
      - Get time
      
      It need not be extended beyond this set if being able to run tests for this target is the only goal.
      
      edit:
      As part of this PR I had to make a further change. Previously, the rust entry point would be automatically called when the webassembly module was instantiated. This was problematic because from the javascript side it was impossible to call exported functions, access program memory or get a reference to the instance.
      
      To solve this, ~I changed the default behaviour to not automatically call the entry point, and added a crate-level attribute to regain the old behaviour. (`#![wasm_auto_run]`)~ I disabled this behaviour when building tests.
      6741e416
    • E
      Change offset to `0` · df412ce2
      Esteban Küber 提交于
      df412ce2
  2. 01 2月, 2018 8 次提交
    • B
      Auto merge of #47738 - nikomatsakis:issue-47139-master, r=arielb1 · 56733bc9
      bors 提交于
      remove intercrate ambiguity hints
      
      The scheme was causing overflows during coherence checking (e.g. #47139). This is sort of a temporary fix; the proper fix I think involves reworking trait selection in deeper ways.
      
      cc @sgrif -- this *should* fix diesel
      
      cc @qnighy -- I'd like to discuss you with alternative techniques for achieving the same end. =) Actually, it might be good to put some energy into refactoring traits first.
      
      r? @EddyB
      56733bc9
    • B
      Auto merge of #47540 - Manishearth:suggestion, r=nrc · 26792f06
      bors 提交于
      Add approximate suggestions for rustfix
      
      This adds `span_approximate_suggestion()` that lets you emit a
      suggestion marked as "non-machine applicable" in the JSON output. UI
      users see no difference. This is for when rustc and clippy wish to
       emit suggestions which will make sense to the reader (e.g. they may
      have placeholders like `<type>`) but are not source-applicable, so that
      rustfix/etc can ignore these.
      
      fixes #39254
      26792f06
    • B
      Auto merge of #47900 - kennytm:rollup, r=kennytm · 8ccab7ee
      bors 提交于
      Rollup of 16 pull requests
      
      - Successful merges: #47838, #47840, #47844, #47874, #47875, #47876, #47884, #47886, #47889, #47890, #47891, #47795, #47677, #47893, #47895, #47552
      - Failed merges:
      8ccab7ee
    • K
      Rollup merge of #47552 - oberien:stepby-nth, r=dtolnay · af95302d
      kennytm 提交于
      Specialize StepBy::nth
      
      This allows optimizations of implementations of the inner iterator's `.nth` method.
      af95302d
    • K
      Rollup merge of #47895 - varkor:non-utf-stdin, r=estebank · 86eb7259
      kennytm 提交于
      Fix ICE when reading non-UTF-8 input from stdin
      
      Fixes #22387.
      86eb7259
    • K
      Rollup merge of #47893 - alexcrichton:move-codegen-backends, r=alexcrichton · 61972e73
      kennytm 提交于
      rustc: Move location of `codegen-backends` dir
      
      Right now this directory is located under:
      
      ```
      $sysroot/lib/rustlib/$target/lib/codegen-backends
      ```
      
      but after seeing what we do in a few other places it seems that a more
      appropriate location would be:
      
      ```
      $sysroot/lib/rustlib/$target/codegen-backends
      ```
      
      so this commit moves it!
      61972e73
    • K
      Rollup merge of #47677 - etaoins:avoid-underflow-in-rennder-source-line, r=estebank · 68135d19
      kennytm 提交于
      Avoid underflow in render_source_line
      
      While testing rust-lang/rust#47655 I was able to make the compiler panic when it's compiled with debug assertions:
      
      ```shell
      > rustc /dev/null --crate-type proc-macro
      
      error: internal compiler error: unexpected panic
      
      note: the compiler unexpectedly panicked. this is a bug.
      
      note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
      
      note: rustc 1.25.0-dev running on x86_64-apple-darwin
      
      note: run with `RUST_BACKTRACE=1` for a backtrace
      
      thread 'rustc' panicked at 'attempt to subtract with overflow', librustc_errors/emitter.rs:287:49
      ```
      
      Without debug assertions the following warning is emitted:
      
      ```shell
      > rustc /dev/null --crate-type proc-macro
      
      warning: unused variable: `registrar`
       --> /dev/null:0:1
        |
        |
        = note: #[warn(unused_variables)] on by default
        = note: to avoid this warning, consider using `_registrar` instead
      ```
      
      The panic is due to the unused variable warning being spanned to `/dev/null:0:1`. When `render_source_line` subtracts 1 from the line number to look up the source line it panics due to underflow. Without debug assertions this would wrap and cause us to return a blank string instead.
      
      Fix by explicitly testing for 0 and exiting early. I'm unsure how to automatically test this now that rust-lang/rust#46655 has been approved.
      68135d19
    • A
      rustc: Move location of `codegen-backends` dir · 8ebe5424
      Alex Crichton 提交于
      Right now this directory is located under:
      
        $sysroot/lib/rustlib/$target/lib/codegen-backends
      
      but after seeing what we do in a few other places it seems that a more
      appropriate location would be:
      
        $sysroot/lib/rustlib/$target/codegen-backends
      
      so this commit moves it!
      8ebe5424
  3. 31 1月, 2018 25 次提交