about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--library/core/src/error.rs15
-rw-r--r--library/std/src/error.rs15
2 files changed, 0 insertions, 30 deletions
diff --git a/library/core/src/error.rs b/library/core/src/error.rs
index a4ed2868c91..4a8efe15e59 100644
--- a/library/core/src/error.rs
+++ b/library/core/src/error.rs
@@ -1,17 +1,6 @@
 #![doc = include_str!("error.md")]
 #![unstable(feature = "error_in_core", issue = "none")]
 
-// A note about crates and the facade:
-//
-// Originally, the `Error` trait was defined in libcore, and the impls
-// were scattered about. However, coherence objected to this
-// arrangement, because to create the blanket impls for `Box` required
-// knowing that `&str: !Error`, and we have no means to deal with that
-// sort of conflict just now. Therefore, for the time being, we have
-// moved the `Error` trait into libstd. As we evolve a sol'n to the
-// coherence challenge (e.g., specialization, neg impls, etc) we can
-// reconsider what crate these items belong in.
-
 #[cfg(test)]
 mod tests;
 
@@ -417,10 +406,6 @@ impl dyn Error {
         // because that means the method can't be called on trait objects (we'd also need the
         // 'static bound, but that isn't allowed because methods with bounds on Self other than
         // Sized are not object-safe). Requiring an Unsize bound is not backwards compatible.
-        //
-        // Two possible solutions are to start the iterator at self.source() instead of self (see
-        // discussion on the tracking issue), or to wait for dyn* to exist (which would then permit
-        // the coercion).
 
         Source { current: Some(self) }
     }
diff --git a/library/std/src/error.rs b/library/std/src/error.rs
index f36765c0707..e4505959536 100644
--- a/library/std/src/error.rs
+++ b/library/std/src/error.rs
@@ -1,17 +1,6 @@
 #![doc = include_str!("../../core/src/error.md")]
 #![stable(feature = "rust1", since = "1.0.0")]
 
-// A note about crates and the facade:
-//
-// Originally, the `Error` trait was defined in libcore, and the impls
-// were scattered about. However, coherence objected to this
-// arrangement, because to create the blanket impls for `Box` required
-// knowing that `&str: !Error`, and we have no means to deal with that
-// sort of conflict just now. Therefore, for the time being, we have
-// moved the `Error` trait into libstd. As we evolve a sol'n to the
-// coherence challenge (e.g., specialization, neg impls, etc) we can
-// reconsider what crate these items belong in.
-
 #[cfg(test)]
 mod tests;
 
@@ -996,10 +985,6 @@ impl dyn Error {
         // because that means the method can't be called on trait objects (we'd also need the
         // 'static bound, but that isn't allowed because methods with bounds on Self other than
         // Sized are not object-safe). Requiring an Unsize bound is not backwards compatible.
-        //
-        // Two possible solutions are to start the iterator at self.source() instead of self (see
-        // discussion on the tracking issue), or to wait for dyn* to exist (which would then permit
-        // the coercion).
 
         Sources { current: Some(self) }
     }