error: lifetimes cannot use keyword names
  --> $DIR/issue-10412.rs:1:20
   |
LL | trait Serializable<'self, T> {
   |                    ^^^^^

error: lifetimes cannot use keyword names
  --> $DIR/issue-10412.rs:2:25
   |
LL |     fn serialize(val : &'self T) -> Vec<u8>;
   |                         ^^^^^

error: lifetimes cannot use keyword names
  --> $DIR/issue-10412.rs:3:38
   |
LL |     fn deserialize(repr : &[u8]) -> &'self T;
   |                                      ^^^^^

error: lifetimes cannot use keyword names
  --> $DIR/issue-10412.rs:6:6
   |
LL | impl<'self> Serializable<str> for &'self str {
   |      ^^^^^

error: lifetimes cannot use keyword names
  --> $DIR/issue-10412.rs:6:36
   |
LL | impl<'self> Serializable<str> for &'self str {
   |                                    ^^^^^

error: lifetimes cannot use keyword names
  --> $DIR/issue-10412.rs:10:25
   |
LL |     fn serialize(val : &'self str) -> Vec<u8> {
   |                         ^^^^^

error: lifetimes cannot use keyword names
  --> $DIR/issue-10412.rs:13:37
   |
LL |     fn deserialize(repr: &[u8]) -> &'self str {
   |                                     ^^^^^

error[E0726]: implicit elided lifetime not allowed here
  --> $DIR/issue-10412.rs:6:13
   |
LL | impl<'self> Serializable<str> for &'self str {
   |             ^^^^^^^^^^^^^^^^^ help: indicate the anonymous lifetime: `Serializable<'_, str>`
   |
   = note: assuming a `'static` lifetime...

error[E0277]: the size for values of type `str` cannot be known at compilation time
  --> $DIR/issue-10412.rs:6:13
   |
LL | impl<'self> Serializable<str> for &'self str {
   |             ^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
   |
   = help: the trait `Sized` is not implemented for `str`
note: required by a bound in `Serializable`
  --> $DIR/issue-10412.rs:1:27
   |
LL | trait Serializable<'self, T> {
   |                           ^ required by this bound in `Serializable`
help: consider relaxing the implicit `Sized` restriction
   |
LL | trait Serializable<'self, T: ?Sized> {
   |                            ++++++++

error: aborting due to 9 previous errors

For more information about this error, try `rustc --explain E0277`.
