- 19 8月, 2020 1 次提交
-
-
由 Rich Kadel 提交于
-
- 18 8月, 2020 1 次提交
-
-
由 Ujjwal Sharma 提交于
-
- 17 8月, 2020 3 次提交
-
-
由 mark 提交于
-
由 Eduard-Mihai Burtescu 提交于
-
由 Eduard-Mihai Burtescu 提交于
-
- 16 8月, 2020 2 次提交
-
-
由 David Wood 提交于
This commit introduces `QPath::LangItem` to the HIR and uses it in AST lowering instead of constructing a `hir::Path` from a slice of symbols. This might be better for performance, but is also much cleaner as the previous approach is fragile. In addition, it resolves a bug (#61019) where an extern crate imported as "std" would result in the paths created during AST lowering being resolved incorrectly (or not at all). Co-authored-by: NMatthew Jasper <mjjasper1@gmail.com> Signed-off-by: NDavid Wood <david@davidtw.co>
-
由 Gurpreet Singh 提交于
-
- 15 8月, 2020 4 次提交
-
-
由 Matthew Jasper 提交于
-
由 Matthew Jasper 提交于
-
由 Matthew Jasper 提交于
-
由 Matthew Jasper 提交于
- Move the type parameter from `encode` and `decode` methods to the trait. - Remove `UseSpecialized(En|De)codable` traits. - Remove blanket impls for references. - Add `RefDecodable` trait to allow deserializing to arena-allocated references safely. - Remove ability to (de)serialize HIR. - Create proc-macros `(Ty)?(En|De)codable` to help implement these new traits.
-
- 13 8月, 2020 3 次提交
-
-
由 Bastian Kauschke 提交于
-
由 Michael Woerister 提交于
-
由 Ralf Jung 提交于
-
- 11 8月, 2020 1 次提交
-
-
由 Oliver Scherer 提交于
-
- 10 8月, 2020 1 次提交
-
-
由 Josh Stone 提交于
-
- 09 8月, 2020 2 次提交
-
-
由 David Wood 提交于
This commit restricts the substitution polymorphization added in #75255 to only apply to the tupled upvar substitution, rather than all substitutions, fixing a bunch of regressions when polymorphization is enabled. Signed-off-by: NDavid Wood <david@davidtw.co>
-
由 Ralf Jung 提交于
-
- 08 8月, 2020 8 次提交
-
-
由 Philippe Nadon 提交于
Renamed remaining references to "undef" to "uninit" when referring to Miri. Impacted directories are: - src/librustc_codegen_llvm/consts.rs - src/librustc_middle/mir/interpret/ - src/librustc_middle/ty/print/pretty.rs - src/librustc_mir/ - src/tools/clippy/clippy_lints/src/consts.rs Upon building Miri based on the new changes it was verified that no changes needed to be made with the Miri project. Related issue #71193
-
由 Nicholas Nethercote 提交于
By moving `{known,used}_attrs` from `SessionGlobals` to `Session`. This means they are accessed via the `Session`, rather than via TLS. A few `Attr` methods and `librustc_ast` functions are now methods of `Session`. All of this required passing a `Session` to lots of functions that didn't already have one. Some of these functions also had arguments removed, because those arguments could be accessed directly via the `Session` argument. `contains_feature_attr()` was dead, and is removed. Some functions were moved from `librustc_ast` elsewhere because they now need to access `Session`, which isn't available in that crate. - `entry_point_type()` --> `librustc_builtin_macros` - `global_allocator_spans()` --> `librustc_metadata` - `is_proc_macro_attr()` --> `Session`
-
由 Matthias Krüger 提交于
-
由 David Wood 提交于
This commit extends previous polymorphization of substs to polymorphize `FnDef`. Signed-off-by: NDavid Wood <david@davidtw.co>
-
由 David Wood 提交于
This commit avoids unnecessary calls to `mk_closure` and `mk_generator` by checking if the polymorphized substs match the original substs. Signed-off-by: NDavid Wood <david@davidtw.co>
-
由 David Wood 提交于
This commit adds a `MAY_POLYMORPHIZE` which checks for closures and generators so that polymorphization of substs does not need to traverse every substs. Signed-off-by: NDavid Wood <david@davidtw.co>
-
由 David Wood 提交于
By always polymorphizing substitutions, functions which take closures as arguments (e.g. `impl Fn()`) can have fewer mono items when some of the argument closures can be polymorphized. Signed-off-by: NDavid Wood <david@davidtw.co>
-
由 David Wood 提交于
This commit modifies how instances are polymorphized so that closures and generators have any closures or generators captured within their upvars also polymorphized - this avoids symbol clashes with the new symbol mangling scheme. Signed-off-by: NDavid Wood <david@davidtw.co>
-
- 06 8月, 2020 1 次提交
-
-
由 Bastian Kauschke 提交于
-
- 05 8月, 2020 2 次提交
-
-
由 Rich Kadel 提交于
The prior PR corrected for errors encountered when trying to generate the coverage map on source code inlined from external crates (including macros and generics) by avoiding adding external DefIds to the coverage map. This made it possible to generate a coverage report including external crates, but the external crate coverage was incomplete (did not include coverage for the DefIds that were eliminated. The root issue was that the coverage map was converting Span locations to source file and locations, using the SourceMap for the current crate, and this would not work for spans from external crates (compliled with a different SourceMap). The solution was to convert the Spans to filename and location during MIR generation instead, so precompiled external crates would already have the correct source code locations embedded in their MIR, when imported into another crate.
-
由 David Wood 提交于
This commit changes polymorphization to return a `FiniteBitSet<u32>` rather than a `FiniteBitSet<u64>` because most functions do not use anywhere near sixty-four generic parameters so keeping a `u64` around is unnecessary in most cases. Signed-off-by: NDavid Wood <david@davidtw.co>
-
- 04 8月, 2020 2 次提交
-
-
由 LeSeulArtichaut 提交于
-
由 Nicholas Nethercote 提交于
They're only used in error messages printed if there's an internal compiler error, and the cost of maintaining them is high enough to show up in profiles.
-
- 03 8月, 2020 2 次提交
-
-
由 Nicholas Nethercote 提交于
-
由 Nicholas Nethercote 提交于
We store an `ImplicitCtxt` pointer in a thread-local value (TLV). This allows implicit access to a `GlobalCtxt` and some other things. We also store a `GlobalCtxt` pointer in `GCX_PTR`. This is always the same `GlobalCtxt` as the one within the `ImplicitCtxt` pointer in TLV. `GCX_PTR` is only used in the parallel compiler's `handle_deadlock()` function. This commit does the following. - It removes `GCX_PTR`. - It also adds `ImplicitCtxt::new()`, which constructs an `ImplicitCtxt` from a `GlobalCtxt`. `ImplicitCtxt::new()` + `tls::enter_context()` is now equivalent to the old `tls::enter_global()`. - Makes `tls::get_tlv()` public for the parallel compiler, because it's now used in `handle_deadlock()`.
-
- 02 8月, 2020 5 次提交
-
-
由 liuzhenyu 提交于
-
由 Camille GILLOT 提交于
-
由 Camille GILLOT 提交于
-
由 Camille GILLOT 提交于
-
由 Camille GILLOT 提交于
-
- 01 8月, 2020 2 次提交
-
-
由 Eduard-Mihai Burtescu 提交于
-
由 Valentin Lazureanu 提交于
-