error: suffixes on a tuple index are invalid
  --> $DIR/offset-of-tuple.rs:18:35
   |
LL |     builtin # offset_of((u8, u8), 1_u8);
   |                                   ^^^^ invalid suffix `u8`

error: leading `+` is not supported
  --> $DIR/offset-of-tuple.rs:22:37
   |
LL |     { builtin # offset_of((u8, u8), +1) };
   |                                     ^ unexpected `+`
   |
help: try removing the `+`
   |
LL -     { builtin # offset_of((u8, u8), +1) };
LL +     { builtin # offset_of((u8, u8), 1) };
   |

error: offset_of expects dot-separated field and variant names
  --> $DIR/offset-of-tuple.rs:23:38
   |
LL |     { builtin # offset_of((u8, u8), 1.) };
   |                                      ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:24:40
   |
LL |     { builtin # offset_of((u8, u8), 1 .) };
   |                                        ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:47:45
   |
LL |     { builtin # offset_of(ComplexTup, 0.0.1.) };
   |                                             ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:48:46
   |
LL |     { builtin # offset_of(ComplexTup, 0 .0.1.) };
   |                                              ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:49:47
   |
LL |     { builtin # offset_of(ComplexTup, 0 . 0.1.) };
   |                                               ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:50:46
   |
LL |     { builtin # offset_of(ComplexTup, 0. 0.1.) };
   |                                              ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:51:46
   |
LL |     { builtin # offset_of(ComplexTup, 0.0 .1.) };
   |                                              ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:52:47
   |
LL |     { builtin # offset_of(ComplexTup, 0.0 . 1.) };
   |                                               ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:53:46
   |
LL |     { builtin # offset_of(ComplexTup, 0.0. 1.) };
   |                                              ^

error: suffixes on a tuple index are invalid
  --> $DIR/offset-of-tuple.rs:9:26
   |
LL |     offset_of!((u8, u8), 1_u8);
   |                          ^^^^ invalid suffix `u8`

error: no rules expected the token `+`
  --> $DIR/offset-of-tuple.rs:11:26
   |
LL |     offset_of!((u8, u8), +1);
   |                          ^ no rules expected this token in macro call
   |
note: while trying to match meta-variable `$fields:expr`
  --> $SRC_DIR/core/src/mem/mod.rs:LL:COL

error: offset_of expects dot-separated field and variant names
  --> $DIR/offset-of-tuple.rs:12:26
   |
LL |     offset_of!((u8, u8), -1);
   |                          ^^

error: offset_of expects dot-separated field and variant names
  --> $DIR/offset-of-tuple.rs:13:27
   |
LL |     offset_of!((u8, u8), 1.);
   |                           ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:14:29
   |
LL |     offset_of!((u8, u8), 1 .);
   |                             ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:36:34
   |
LL |     offset_of!(ComplexTup, 0.0.1.);
   |                                  ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:37:35
   |
LL |     offset_of!(ComplexTup, 0 .0.1.);
   |                                   ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:38:36
   |
LL |     offset_of!(ComplexTup, 0 . 0.1.);
   |                                    ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:39:35
   |
LL |     offset_of!(ComplexTup, 0. 0.1.);
   |                                   ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:40:35
   |
LL |     offset_of!(ComplexTup, 0.0 .1.);
   |                                   ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:41:36
   |
LL |     offset_of!(ComplexTup, 0.0 . 1.);
   |                                    ^

error: unexpected token: `)`
  --> $DIR/offset-of-tuple.rs:42:35
   |
LL |     offset_of!(ComplexTup, 0.0. 1.);
   |                                   ^

error[E0609]: no field `_0` on type `(u8, u8)`
  --> $DIR/offset-of-tuple.rs:6:26
   |
LL |     offset_of!((u8, u8), _0);
   |                          ^^

error[E0609]: no field `01` on type `(u8, u8)`
  --> $DIR/offset-of-tuple.rs:7:26
   |
LL |     offset_of!((u8, u8), 01);
   |                          ^^

error[E0609]: no field `1e2` on type `(u8, u8)`
  --> $DIR/offset-of-tuple.rs:8:26
   |
LL |     offset_of!((u8, u8), 1e2);
   |                          ^^^

error[E0609]: no field `1_` on type `(u8, u8)`
  --> $DIR/offset-of-tuple.rs:9:26
   |
LL |     offset_of!((u8, u8), 1_u8);
   |                          ^^^^

error[E0609]: no field `1e2` on type `(u8, u8)`
  --> $DIR/offset-of-tuple.rs:15:35
   |
LL |     builtin # offset_of((u8, u8), 1e2);
   |                                   ^^^

error[E0609]: no field `_0` on type `(u8, u8)`
  --> $DIR/offset-of-tuple.rs:16:35
   |
LL |     builtin # offset_of((u8, u8), _0);
   |                                   ^^

error[E0609]: no field `01` on type `(u8, u8)`
  --> $DIR/offset-of-tuple.rs:17:35
   |
LL |     builtin # offset_of((u8, u8), 01);
   |                                   ^^

error[E0609]: no field `1_` on type `(u8, u8)`
  --> $DIR/offset-of-tuple.rs:18:35
   |
LL |     builtin # offset_of((u8, u8), 1_u8);
   |                                   ^^^^

error[E0609]: no field `2` on type `(u8, u16)`
  --> $DIR/offset-of-tuple.rs:30:47
   |
LL |     offset_of!(((u8, u16), (u32, u16, u8)), 0.2);
   |                                               ^

error[E0609]: no field `1e2` on type `(u8, u16)`
  --> $DIR/offset-of-tuple.rs:31:47
   |
LL |     offset_of!(((u8, u16), (u32, u16, u8)), 0.1e2);
   |                                               ^^^

error[E0609]: no field `0` on type `u8`
  --> $DIR/offset-of-tuple.rs:33:49
   |
LL |     offset_of!(((u8, u16), (u32, u16, u8)), 1.2.0);
   |                                                 ^

error: aborting due to 34 previous errors

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