1517 Commits

Author SHA1 Message Date
ljedrz
d28aed6dc4 Prefer unwrap_or_else to unwrap_or in case of function calls/allocations 2018-10-19 09:45:45 +02:00
bors
37ba1071c6 Auto merge of #54671 - petrochenkov:extpre2015, r=nikomatsakis
resolve: Scale back hard-coded extern prelude additions on 2015 edition

https://github.com/rust-lang/rust/pull/54404 stabilized `feature(extern_prelude)` on 2015 edition, including the hard-coded parts not passed with `--extern`.
First of all, I'd want to confirm that this is intended stabilization, rather than a part of the "extended beta" scheme that's going to be reverted before releasing stable.
(EDIT: to clarify - this is a question, I'm \*asking\* for confirmation, rather than give it.)

Second, on 2015 edition extern prelude is not so fundamentally tied to imports and is a mere convenience, so this PR scales them back to the uncontroversial subset.
The "uncontroversial subset" means that if libcore is injected it brings `core` into prelude, if libstd is injected it brings `std` and `core` into prelude.
On 2015 edition this can be implemented through the library prelude (rather than hard-coding in the compiler) right now, I'll do it in a follow-up PR.

UPDATE: The change is done for both 2015 and 2018 editions now as discussed below.

Closes https://github.com/rust-lang/rust/issues/53166
2018-10-17 01:59:28 +00:00
ljedrz
675f00bfa8 rustc/session: improve allocations 2018-10-15 10:19:04 +02:00
bors
f02768b685 Auto merge of #55008 - ljedrz:cleanup_rustc_driver, r=estebank
Cleanup rustc/driver

- improve/remove allocations
- simplify `profile::trace::cons*`
- don't sort `base` if it only has one element
- use `Cow<str>` where applicable
- use `unwrap_or_else` with function calls
- remove an explicit `return`, add an explicit `None`
- remove lifetimes from `const`s
- improve common patterns
- improve macro calls
- whitespace & formatting fixes
2018-10-15 00:18:27 +00:00
Vadim Petrochenkov
522948827b Copy extern prelude from resolver to global context 2018-10-13 21:35:19 +03:00
ljedrz
b03a82cfca rustc/driver: whitespace & formatting fixes 2018-10-13 10:15:46 +02:00
ljedrz
d838a7fcca rustc/driver: unwrap_or_else with function calls 2018-10-13 10:15:46 +02:00
ljedrz
c46c4d7135 rustc/driver: remove explicit return, add explicit None 2018-10-13 10:09:42 +02:00
ljedrz
292cc1e36f rustc/driver: don't sort base if it only has one element 2018-10-13 10:09:42 +02:00
ljedrz
9b01b51560 rustc/driver: remove lifetimes from consts 2018-10-13 10:09:41 +02:00
ljedrz
d599f5bf61 rustc/driver: improve common patterns 2018-10-13 10:09:41 +02:00
ljedrz
2c482d8d41 rustc/driver: use Cow<str> where applicable 2018-10-13 10:09:40 +02:00
ljedrz
9a1de086e4 rustc/driver: improve/remove allocations 2018-10-13 10:09:40 +02:00
ljedrz
39753c8973 rustc/driver: improve macro calls 2018-10-12 14:01:25 +02:00
ljedrz
5bfe08fc71 rustc/driver: simplify profile::trace::cons 2018-10-12 13:55:35 +02:00
Clément Renault
8c01c225ce Stabilize the Option::replace method 2018-10-08 10:06:45 +02:00
Richard Diamond
0b76a97793 Re-export getopts so custom drivers can reference it.
Otherwise, custom drivers will have to use their own copy of `getopts`, which
won't match the types used in `CompilerCalls`.
2018-09-30 10:48:00 -05:00
bors
6310be458f Auto merge of #54601 - cuviper:prep-1.31, r=Mark-Simulacrum
Bump to 1.31.0 and bootstrap from 1.30 beta

Closes #54594.
2018-09-30 01:45:50 +00:00
Josh Stone
ce034951fb Bump to 1.31.0 and bootstrap from 1.30 beta 2018-09-27 20:52:53 -07:00
Igor Matuszewski
1e593be593 Remap only source files in the command line 2018-09-28 01:54:00 +02:00
Niko Matsakis
f23fd4bc02 rustc_driver/test.rs: rustfmt 2018-09-26 09:38:26 -04:00
Niko Matsakis
cbaf36adaf fix rustc_driver tests 2018-09-26 09:38:26 -04:00
ljedrz
130a32fa72 Remove OneVector 2018-09-26 10:43:37 +02:00
Marshall Bowers
2d7176f3a3 Fix missing struct name 2018-09-15 15:43:44 -04:00
Marshall Bowers
fa1868d9da Make rustc::middle::region::Scope's fields public 2018-09-15 13:10:29 -04:00
kennytm
d51c3643b4
Rollup merge of #54173 - phansch:suggest_valid_crate_type, r=estebank
Suggest valid crate type if invalid crate type is found

This adds a suggestion to the `invalid_crate_types` lint.

The suggestion is based on the Levenshtein distance to existing crate
types. If no suggestion is found it will show the lint without any
suggestions.

Closes #53958
2018-09-14 14:50:13 +08:00
kennytm
9c0f946fe2
Rollup merge of #54095 - kenta7777:kenta7777#53719, r=davidtwco
Rename all mentions of `nil` to `unit`

Fixes #53719.

Renamed keywords nil to unit.
2018-09-14 14:50:11 +08:00
Philipp Hansch
7249a1b1ae
Suggest valid crate type if invalid
This adds a suggestion to the `invalid_crate_types` lint.

The suggestion is based on the Levenshtein distance to existing crate
types. If no suggestion is found it will show the lint without any
suggestions.
2018-09-13 21:26:45 +02:00
toidiu
731f4efae5 stabalize infer outlives requirements (RFC 2093).
Co-authored-by: nikomatsakis
2018-09-11 11:40:04 -04:00
kenta7777
8c53150b18 Revert "renamed t_nil to t_unit"
This reverts commit 69deed9dc17cfd1c3e02d9e662ebc164885321a6.
2018-09-11 22:16:04 +09:00
kenta7777
69deed9dc1 renamed t_nil to t_unit 2018-09-10 11:21:30 +09:00
kenta7777
5c3ba4aa4f renamed mk_nil to mk_unit 2018-09-10 11:07:13 +09:00
Niko Matsakis
3b6361d29d switch to using NonZeroU32 to represent indices 2018-09-07 11:37:47 -04:00
John Renner
0593dc7e3c Move #[test_case] to a syntax extension 2018-09-04 22:33:23 -07:00
flip1995
ce173c12e6 Add deprecated_name argument to the register lint group functions 2018-08-31 00:46:55 -07:00
Eduard-Mihai Burtescu
93f3f5b155 Use FxHash{Map,Set} instead of the default Hash{Map,Set} everywhere in rustc. 2018-08-28 17:04:04 +03:00
varkor
4b12f700db Remove Node* prefix from AnnNode 2018-08-27 21:45:46 +01:00
bors
70a21e89f1 Auto merge of #53441 - toidiu:ak-fix53419, r=nikomatsakis
fix for late-bound regions

Fix for https://github.com/rust-lang/rust/issues/53419

r? @nikomatsakis
2018-08-27 17:42:45 +00:00
John Kåre Alsaker
bd04796d6e Move with_globals setup from run_compiler to run 2018-08-27 02:19:07 +02:00
Niko Matsakis
73fb1622b3 check that adding infer-outlives requirement to all crates works 2018-08-24 17:10:50 -04:00
Matthias Krüger
ede1f7d2a5 use String::new() instead of String::from(""), "".to_string(), "".to_owned() or "".into() 2018-08-23 10:14:52 +02:00
Donato Sciarra
062bfbf39b mv codemap source_map 2018-08-19 23:01:01 +02:00
Donato Sciarra
d3fe97f3d3 mv codemap() source_map() 2018-08-19 23:01:01 +02:00
Donato Sciarra
82607d2cf3 mv (mod) codemap source_map 2018-08-19 23:01:00 +02:00
Donato Sciarra
cbd0595710 mv filemap source_file 2018-08-19 23:00:59 +02:00
Donato Sciarra
c655473378 mv CodeMap SourceMap 2018-08-19 23:00:59 +02:00
bors
a5733050de Auto merge of #53354 - kennytm:rollup, r=kennytm
Rollup of 11 pull requests

Successful merges:

 - #53112 (pretty print BTreeSet)
 - #53208 (Don't panic on std::env::vars() when env is null.)
 - #53226 (driver: set the syntax edition in phase 1)
 - #53229 (Make sure rlimit is only ever increased)
 - #53233 (targets: aarch64: Add bare-metal aarch64 target)
 - #53239 (rustc_codegen_llvm: Restore the closure env alloca hack for LLVM 5.)
 - #53246 (A few cleanups)
 - #53257 (Idiomatic improvements to IP method)
 - #53274 (Remove statics field from CodegenCx)
 - #53290 (Make LLVM emit assembly comments with -Z asm-comments)
 - #53317 (Mark prior failure to avoid ICE)
2018-08-14 17:24:18 +00:00
kennytm
4fb40588ae
Rollup merge of #53229 - varkor:rlimits_min, r=nikomatsakis
Make sure rlimit is only ever increased

`libc::setrlimit` will fail if we try to set the rlimit to a value lower than it is currently, so make sure we're never trying to do this. Fixes #52801.
2018-08-14 23:59:08 +08:00
kennytm
eeab08e97a
Rollup merge of #53226 - QuietMisdreavus:editions-for-all, r=estebank
driver: set the syntax edition in phase 1

Fixes https://github.com/rust-lang/rust/issues/53203

It seems the way libsyntax handles the desired edition is to use a global, set via `syntax_pos::hygiene::set_default_edition`. Right now, this is set in the driver in `run_compiler`, which is the entry point for running the compiler all the way through to emitting files. Since rustdoc doesn't use this function, it wasn't properly setting this global. (When initially setting up editions in rustdoc, i'd assumed that setting `sessopts.edition` would have done this... `>_>`) This was "fixed" for doctests in https://github.com/rust-lang/rust/pull/52385, but rather than patching in a call to `set_default_edition` in all the places rustdoc sets up the compiler, i've instead moved the call in the driver to be farther in the process. This means that any use of `phase_1_parse_input` with the right session options will have the edition properly set without having to also remember to set libsyntax up separately.

r? @rust-lang/compiler
2018-08-14 23:59:07 +08:00
bors
23f09bbed4 Auto merge of #53085 - ljedrz:cleanup_syntax_structures, r=ljedrz
Move SmallVector and ThinVec out of libsyntax

- move `libsyntax::util::SmallVector` tests to `librustc_data_structures::small_vec`
- remove `libsyntax::util::SmallVector`
- move `libsyntax::util::thin_vec` to `librustc_data_structures::thin_vec`

Other than moving these data structures where they belong it allows modules using `SmallVector<T>` (`SmallVec<[T; 1]>`) to specify their own length (e.g. 8 or 32) independently from `libsyntax`.
2018-08-14 15:09:37 +00:00