1. 01 5月, 2015 2 次提交
    • A
      Add downcasting to std::error::Error · a5762625
      Aaron Turon 提交于
      This commit brings the `Error` trait in line with the [Error interoperation
      RFC](https://github.com/rust-lang/rfcs/pull/201) by adding downcasting,
      which has long been intended. This change means that for any `Error`
      trait objects that are `'static`, you can downcast to concrete error
      types.
      
      To make this work, it is necessary for `Error` to inherit from
      `Reflect` (which is currently used to mark concrete types as "permitted
      for reflection, aka downcasting"). This is a breaking change: it means
      that impls like
      
      ```rust
      impl<T> Error for MyErrorType<T> { ... }
      ```
      
      must change to something like
      
      ```rust
      impl<T: Reflect> Error for MyErrorType<T> { ... }
      ```
      
      except that `Reflect` is currently unstable (and should remain so for
      the time being). For now, code can instead bound by `Any`:
      
      ```rust
      impl<T: Any> Error for MyErrorType<T> { ... }
      ```
      
      which *is* stable and has `Reflect` as a super trait. The downside is
      that this imposes a `'static` constraint, but that only
      constrains *when* `Error` is implemented -- it does not actually
      constrain the types that can implement `Error`.
      
      [breaking-change]
      a5762625
    • A
      rustdoc: Fix rendering associated constants · 543b910f
      Alex Crichton 提交于
      Associated constants were now showing up for traits and would panic if they were
      found on an inherent impl. This commit unblocks the nighly builders.
      543b910f
  2. 30 4月, 2015 23 次提交
  3. 29 4月, 2015 15 次提交