- 19 2月, 2015 1 次提交
-
-
由 Niko Matsakis 提交于
`no_late_bound_regions().unwrap()`, which allows us to write code that doesn't necessarily *fail* when there are higher-ranked trait bounds.
-
- 16 2月, 2015 1 次提交
-
-
由 Eduard Burtescu 提交于
-
- 11 2月, 2015 1 次提交
-
-
由 Steve Klabnik 提交于
This is super black magic internals at the moment, but having it somewhere semi-public seems good. The current versions weren't being rendered, and they'll be useful for some people. Fixes #21281
-
- 07 2月, 2015 2 次提交
-
-
由 Michael Woerister 提交于
-
由 Michael Woerister 提交于
-
- 06 2月, 2015 1 次提交
-
-
由 Jorge Aparicio 提交于
-
- 05 2月, 2015 1 次提交
-
-
由 Jorge Aparicio 提交于
-
- 04 2月, 2015 1 次提交
-
-
由 Niko Matsakis 提交于
upgrade the inference based on expected type so that it is able to infer the fn kind in isolation even if the full signature is not available (and we could perhaps do better still in some cases, such as extracting just the types of the arguments but not the return value).
-
- 03 2月, 2015 2 次提交
-
-
由 Björn Steinbrink 提交于
-
由 Jorge Aparicio 提交于
-
- 01 2月, 2015 1 次提交
-
-
由 Alfie John 提交于
-
- 30 1月, 2015 2 次提交
-
-
由 Jorge Aparicio 提交于
-
由 Nick Cameron 提交于
-
- 29 1月, 2015 2 次提交
-
-
由 Jorge Aparicio 提交于
-
由 Jorge Aparicio 提交于
sed -i 's/in range(\([^,]*\), *\([^()]*\))/in \1\.\.\2/g' **/*.rs
-
- 28 1月, 2015 2 次提交
-
-
由 Felix S. Klock II 提交于
Fix the issue-20055-box-trait.rs test to actually test `Box<Trait>`. Fix #21695.
-
由 Felix S. Klock II 提交于
This fixes a subtle issue where temporaries were being allocated (but not necessarily initialized) to the (parent) terminating scope of a match expression; in particular, the code to zero out the temporary emitted by `datum.store_to` is only attached to the particular match-arm for that temporary, but when going down other arms of the match expression, the temporary may falsely appear to have been initialized, depending on what the stack held at that location, and thus may have its destructor erroneously run at the end of the terminating scope. Test cases to appear in a follow-up commit. Fix #20055
-
- 26 1月, 2015 3 次提交
-
-
由 Eduard Burtescu 提交于
-
由 Eduard Burtescu 提交于
-
由 Eduard Burtescu 提交于
-
- 24 1月, 2015 1 次提交
-
-
由 Huon Wilson 提交于
-
- 21 1月, 2015 1 次提交
-
-
由 Michael Woerister 提交于
So far, the source location an LLVM instruction was linked to was controlled by `debuginfo::set_source_location()` and `debuginfo::clear_source_location()`. This interface mimicked how LLVM's `IRBuilder` handles debug location assignment. While this interface has some theoretical performance benefits, it also makes things terribly unstable: One sets some quasi-global state and then hopes that it is still correct when a given instruction is emitted---an assumption that has been proven to not hold a bit too often. This patch requires the debug source location to be passed to the actual instruction emitting function. This makes source location assignment explicit and will prevent future changes to `trans` from accidentally breaking things in the majority of cases. This patch does not yet implement the new principle for all instruction kinds but the stepping experience should have improved significantly nonetheless already.
-
- 20 1月, 2015 1 次提交
-
-
由 Ariel Ben-Yehuda 提交于
-
- 16 1月, 2015 2 次提交
-
-
由 Huon Wilson 提交于
-
由 Eduard Burtescu 提交于
-
- 14 1月, 2015 1 次提交
-
-
由 Björn Steinbrink 提交于
There are two places left where we used to only know the byte size of/offset into an array and had to cast to i8 and back to get the right addresses. But by now, we always know the sizes in terms of the number of elements in the array. In fact we have to add an extra Mul instruction so we can use the weird cast-to-u8 code. So we should really just embrace our new knowledge and use simple GEPs to do the address calculations. Additionally, the pointer calculations in bind_subslice_pat don't handle zero-sized types correctly, producing slices that point outside the array that is being matched against. Using GEP fixes that as well. Fixes #3729
-
- 08 1月, 2015 3 次提交
-
-
由 Alex Crichton 提交于
-
由 Niko Matsakis 提交于
-
由 Jorge Aparicio 提交于
-
- 07 1月, 2015 5 次提交
-
-
由 Nick Cameron 提交于
-
由 Sean McArthur 提交于
fmt::Show is for debugging, and can and should be implemented for all public types. This trait is used with `{:?}` syntax. There still exists #[derive(Show)]. fmt::String is for types that faithfully be represented as a String. Because of this, there is no way to derive fmt::String, all implementations must be purposeful. It is used by the default format syntax, `{}`. This will break most instances of `{}`, since that now requires the type to impl fmt::String. In most cases, replacing `{}` with `{:?}` is the correct fix. Types that were being printed specifically for users should receive a fmt::String implementation to fix this. Part of #20013 [breaking-change]
-
由 Nick Cameron 提交于
-
由 Nick Cameron 提交于
-
由 Niko Matsakis 提交于
Fix ICE that @steveklabnik encountered in rust-ice. The problems turned out to be that were being very loose with bound regions in trans (we were basically just ignoring and flattening binders). Since binders are significant to subtyping and hence to trait selection, this can cause a lot of problems. So this patch makes us treat them more strictly -- for example, we propagate binders, and avoid skipping past the `Binder` by writing `foo.0`. Fixes #20644.
-
- 06 1月, 2015 2 次提交
-
-
由 Jorge Aparicio 提交于
-
由 Jorge Aparicio 提交于
-
- 05 1月, 2015 1 次提交
-
-
由 Eduard Burtescu 提交于
-
- 04 1月, 2015 2 次提交
-
-
由 Jorge Aparicio 提交于
-
由 Jorge Aparicio 提交于
-
- 01 1月, 2015 1 次提交
-
-
由 Jorge Aparicio 提交于
-