1. 19 2月, 2015 1 次提交
  2. 16 2月, 2015 1 次提交
  3. 11 2月, 2015 1 次提交
    • S
      Move rustc docs to the book · 005a2506
      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
      005a2506
  4. 07 2月, 2015 2 次提交
  5. 06 2月, 2015 1 次提交
  6. 05 2月, 2015 1 次提交
  7. 04 2月, 2015 1 次提交
    • N
      Remove the explicit closure kind syntax from the parser and AST; · 04311341
      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).
      04311341
  8. 03 2月, 2015 2 次提交
  9. 01 2月, 2015 1 次提交
  10. 30 1月, 2015 2 次提交
  11. 29 1月, 2015 2 次提交
  12. 28 1月, 2015 2 次提交
    • F
      In unsize_unique_expr, do not convert scratch value to lvalue. · d8552020
      Felix S. Klock II 提交于
      Fix the issue-20055-box-trait.rs test to actually test `Box<Trait>`.
      
      Fix #21695.
      d8552020
    • F
      trans: When coercing to `Box<Trait>` or `Box<[T]>`, leave datum in its original L-/R-value state. · 32644310
      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
      32644310
  13. 26 1月, 2015 3 次提交
  14. 24 1月, 2015 1 次提交
  15. 21 1月, 2015 1 次提交
    • M
      debuginfo: Make debuginfo source location assignment more stable (Pt. 1) · a55ef3a0
      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.
      a55ef3a0
  16. 20 1月, 2015 1 次提交
  17. 16 1月, 2015 2 次提交
  18. 14 1月, 2015 1 次提交
    • B
      Prefer GEP instructions over weird pointer casting · 56671cb3
      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
      56671cb3
  19. 08 1月, 2015 3 次提交
  20. 07 1月, 2015 5 次提交
    • N
      fallout · 0c7f7a5f
      Nick Cameron 提交于
      0c7f7a5f
    • S
      core: split into fmt::Show and fmt::String · 44440e5c
      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]
      44440e5c
    • N
      Remove old slicing hacks and make new slicing work · e970db37
      Nick Cameron 提交于
      e970db37
    • N
      Replace full slice notation with index calls · f7ff37e4
      Nick Cameron 提交于
      f7ff37e4
    • N
      Fix ICE that @steveklabnik encountered in rust-ice. The problems turned out to... · 2486d93e
      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.
      2486d93e
  21. 06 1月, 2015 2 次提交
  22. 05 1月, 2015 1 次提交
  23. 04 1月, 2015 2 次提交
  24. 01 1月, 2015 1 次提交