about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2018-02-04Fix info about generic impls in AsMut docsMatt Brubeck-3/+3
This text was copy-pasted from the `AsRef` docs to `AsMut`, but needed some additional adjustments for correctness.
2018-02-04Auto merge of #47834 - Mark-Simulacrum:no-cgu-release, r=alexcrichtonbors-6/+22
Do not enable ThinLTO on stable, beta, or nightly builds. Fixes #45444
2018-02-04Auto merge of #47991 - nrc:update, r=alexcrichtonbors-33/+47
Update RLS and Rustfmt r? @alexcrichton
2018-02-04Auto merge of #47915 - eddyb:layout-of, r=nikomatsakisbors-84/+107
rustc: prefer ParamEnvAnd and LayoutCx over tuples for LayoutOf. This PR provides `tcx.layout_of(param_env.and(ty))` as the idiomatic replacement for the existing `(tcx, param_env).layout_of(ty)` and removes fragile (coherence-wise) layout-related tuple impls. r? @nikomatsakis
2018-02-04Update RLS and RustfmtNick Cameron-33/+47
2018-02-03Disable ThinLTO for dist builds.Mark Simulacrum-6/+22
Dist builds should always be as fast as we can make them, and since those run on CI we don't care quite as much for the build being somewhat slower. As such, we don't automatically enable ThinLTO on builds for the dist builders.
2018-02-03Auto merge of #47845 - Zoxc:gen-fixes, r=nikomatsakisbors-52/+342
Generator bugfixes r? @nikomatsakis
2018-02-03Auto merge of #46254 - Dylan-DPC:ellided-lifetime, r=nikomatsakisbors-4/+55
elided lifetime Closes #45992 Hey Having a problem with my config so decided to make a WIP PR nevertheless. Will add some more tests.
2018-02-03Auto merge of #47962 - kennytm:rollup, r=kennytmbors-70/+157
Rollup of 10 pull requests - Successful merges: #46156, #47829, #47842, #47898, #47914, #47916, #47919, #47942, #47951, #47973 - Failed merges: #47753
2018-02-03Rollup merge of #47973 - perlun:patch-1, r=dtolnaykennytm-1/+1
copy_nonoverlapping example: Fixed typo The comment referred to a variable using an incorrect name. (it has probably been renamed since the comment was written, or the comment was copied elsewhere - I noted the example in libcore has the `tmp` name for the temporary variable.)
2018-02-03Auto merge of #47791 - estebank:mismatched-trait-impl, r=nikomatsakisbors-129/+212
Tweak presentation on lifetime trait mismatch - On trait/impl method discrepancy, add label pointing at trait signature. - Point only at method definition when referring to named lifetimes on lifetime mismatch. - When the sub and sup expectations are the same, tweak the output to avoid repeated spans. Fix #30790, CC #18759.
2018-02-02copy_nonoverlapping example: Fixed typoPer Lundberg-1/+1
The comment referred to a variable using an incorrect name. (it has probably been renamed since the comment was written, or the comment was copied elsewhere - I noted the example in libcore has the `tmp` name for the temporary variable.)
2018-02-02Rollup merge of #47951 - GuillaumeGomez:sidebar-hover, r=QuietMisdreavus Fix ↵kennytm-8/+22
ugly hover in sidebar In the sidebar, the elements under `Structs`, `Enums`... have an ugly hover if they're not selected. This fixes it. r? @QuietMisdreavus
2018-02-02Rollup merge of #47942 - estebank:macro-spans, r=nikomatsakis Minimize weird ↵kennytm-8/+55
spans involving macro context Sometimes the parser attempts to synthesize spans from within a macro context with the span for the captured argument, leading to non-sensical spans with very bad output. Given that an incorrect span is worse than a partially incomplete span, when detecting this situation return only one of the spans without merging them. Fix #32072, #47778. CC #23480.
2018-02-02Rollup merge of #47919 - varkor:to_degrees-precision, r=rkruppe Use constant ↵kennytm-1/+7
for 180/π in to_degrees The current `f32|f64.to_degrees` implementation uses a division to calculate `180/π`, which causes a loss of precision. Using a constant is still not perfect (implementing a maximally-precise algorithm would come with a high performance cost), but improves precision with a minimal change. As per the discussion in #29944, this fixes #29944 (the costs of improving the precision further would not outweigh the gains).
2018-02-02Rollup merge of #47916 - vmx:patch-2, r=kennytm Fix lang items box example ↵kennytm-13/+8
code The `exchange_free` lang item is gone in favour of `box_free` [1]. Some warnings are also fixed by this commit. [1]: https://github.com/rust-lang/rust/commit/ca115dd083a1fe1d2b4892c5e50e49eb83ff1f3
2018-02-02Rollup merge of #47914 - etaoins:improve-char-escape-in-lexer-msg, ↵kennytm-13/+33
r=petrochenkov Improve char escaping in lexer messages Currently ', " and \ are escaped as \', \" and \\ respectively. This leads to confusing messages such as `error: unknown start of token: \\` when encountering a single backslash. Fix by emitting printable ASCII characters directly. This will still escape \r, \n, \t and Unicode characters. Fixes #47902
2018-02-02Rollup merge of #47898 - Aaron1011:static-ref-nll, r=nikomatsakis Fix ICE ↵kennytm-2/+21
when assigning references to a static mut with NLL is_unsafe_place only filters out statics in the rhs, not the lhs. Since it's possible to reach that 'Place::Static', we handle statics the same way as we do locals. Fixes #47789
2018-02-02Rollup merge of #47842 - Manishearth:dead-code, r=nagisa Remove dead code ↵kennytm-24/+0
The Clone impl makes the lint ignore the type.
2018-02-02Rollup merge of #47829 - estebank:break-in-for, r=cramertj Suggest removing ↵kennytm-0/+9
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.
2018-02-02Rollup merge of #46156 - SimonSapin:patch-14, r=withoutboatskennytm-0/+1
Document the size of bool
2018-02-02Auto merge of #47465 - estebank:include-space-after-mut, r=nikomatsakisbors-32/+72
Include space in suggestion `mut` in bindings Fix #46614.
2018-02-02Remove dead codeManish Goregaokar-24/+0
2018-02-02Auto merge of #47102 - Diggsey:wasm-syscall, r=alexcrichtonbors-198/+360
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.
2018-02-01Fix ugly hover in sidebarGuillaume Gomez-8/+22
2018-02-02add ellided lifetimedpc-4/+55
2018-02-01Change offset to `0`Esteban Küber-1/+1
2018-02-01Minimize weird spans involving macro contextEsteban Küber-8/+55
Sometimes the parser attempts to synthesize spans from within a macro context with the span for the captured argument, leading to non-sensical spans with very bad output. Given that an incorrect span is worse than a partially incomplete span, when detecting this situation return only one of the spans without mergin them.
2018-02-01Use constant for 180/π in to_degreesvarkor-1/+7
The current `f32|f64.to_degrees` implementation uses a division to calculate 180/π, which causes a loss of precision. Using a constant is still not perfect (implementing a maximally-precise algorithm would come with a high performance cost), but improves precision with a minimal change.
2018-02-01Auto merge of #47738 - nikomatsakis:issue-47139-master, r=arielb1bors-93/+307
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
2018-02-01Auto merge of #47540 - Manishearth:suggestion, r=nrcbors-14/+109
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
2018-02-01Fix lang items box example codeVolker Mische-13/+8
The `exchange_free` lang item is gone in favour of `box_free` [1]. Some warnings are also fixed by this commit. [1]: https://github.com/rust-lang/rust/commit/ca115dd083a1fe1d2b4892c5e50e49eb83ff1f3
2018-02-01rustc: prefer ParamEnvAnd and LayoutCx over tuples for LayoutOf.Eduard-Mihai Burtescu-84/+107
2018-02-01Improve char escaping in lexer messagesRyan Cumming-13/+33
Currently ', " and \ are escaped as \', \" and \\ respectively. This leads to confusing messages such as `error: unknown start of token: \\` when encountering a single backslash. Fix by emitting printable ASCII characters directly. This will still escape \r, \n, \t and Unicode characters. Fixes #47902
2018-01-31Auto merge of #47900 - kennytm:rollup, r=kennytmbors-48/+320
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:
2018-02-01Rollup merge of #47552 - oberien:stepby-nth, r=dtolnaykennytm-0/+106
Specialize StepBy::nth This allows optimizations of implementations of the inner iterator's `.nth` method.
2018-02-01Rollup merge of #47895 - varkor:non-utf-stdin, r=estebankkennytm-7/+29
Fix ICE when reading non-UTF-8 input from stdin Fixes #22387.
2018-02-01Rollup merge of #47893 - alexcrichton:move-codegen-backends, r=alexcrichtonkennytm-8/+10
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!
2018-02-01Rollup merge of #47677 - etaoins:avoid-underflow-in-rennder-source-line, ↵kennytm-0/+4
r=estebank 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.
2018-01-31rustc: Move location of `codegen-backends` dirAlex Crichton-8/+10
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!
2018-01-31Rollup merge of #47795 - avborhanian:master, r=rkruppekennytm-0/+1
Adding ICH to the glossary. Fixes #47782.
2018-01-31Use file containing non-UTF-8 character instead of echo -evarkor-1/+3
2018-01-31Add echo escape flagvarkor-1/+1
2018-01-31Rollup merge of #47891 - eddyb:issue-47638, r=nikomatsakiskennytm-3/+23
rustc_trans: keep LLVM types for trait objects anonymous. Fixes #47638 by reverting the addition of readable LLVM trait object type names. r? @nikomatsakis
2018-01-31Rollup merge of #47890 - pftbest:no_trap, r=alexcrichtonkennytm-0/+6
[MSP430] Don't enable trap_unreachable option by default on msp. Since MSP430 doesn't meaningfully support faulting on illegal instructions, LLVM generates a call to abort() function instead of a trap instruction. Such calls are 4 bytes long, and that is too much overhead for such small target. r? @alexcrichton
2018-01-31Rollup merge of #47889 - alexcrichton:wasm-hidden-by-default, r=cramertjkennytm-3/+41
rustc: Add an option to default hidden visibility This commit adds a new option to target specifictions to specify that symbols should be "hidden" visibility by default in LLVM. While there are no existing targets that take advantage of this the `wasm32-unknown-unknown` target will soon start to use this visibility. The LLD linker currently interprets `hidden` as "don't export this from the wasm module" which is what we want for 90% of our functions. While the LLD linker does have a "export this symbol" argument which is what we use for other linkers, it was also somewhat easier to do this change instead which'll involve less arguments flying around. Additionally there's no need for non-`hidden` visibility for most of our symbols! This change should not immediately impact the wasm targets as-is, but rather this is laying the foundations for soon integrating LLD as a linker for wasm code.
2018-01-31Rollup merge of #47886 - alexcrichton:llvm-7-start, r=eddybkennytm-0/+11
rustc: Add some defines for LLVM 7 compat I was testing out the tip support to see what's going on with wasm, and this was I believe the only issue encountered with LLVM 7 support so far.
2018-01-31Rollup merge of #47884 - cuviper:run-pass-sse2, r=alexcrichtonkennytm-1/+1
Ignore run-pass/sse2 when using system LLVM This is a test of `target_feature`, which needs a rust-specific patch to LLVM to add `MCSubtargetInfo::getFeatureTable()`.
2018-01-31Rollup merge of #47876 - GuillaumeGomez:associated-const-error, r=nikomatsakiskennytm-5/+24
Update associated constants error message Fixes #47570.
2018-01-31Rollup merge of #47875 - jcowgill:mips-clobber-at, r=rkruppekennytm-2/+3
rustc_trans: clobber $1 (aka $at) on mips This copies what clang does. There is a long explanation as to why this is needed in the clang source (tools/clang/lib/Basic/Targets/Mips.h).