goffrie/plex

broken again ;-(

osa1 opened this issue · 2 comments

osa1 commented

Doesn't work with rustc 1.11.0-nightly (696b703b5 2016-07-03)

osa1 commented

Latest:

    Updating registry `https://github.com/rust-lang/crates.io-index`
   Compiling vec_map v0.3.0
   Compiling lalr v0.0.1
   Compiling scoped-tls v0.1.0
   Compiling bit-set v0.2.0
   Compiling redfa v0.0.1
   Compiling plex v0.0.2
error[E0412]: type name `ast::TokenTree` is undefined or not in scope
  --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/lexer.rs:71:81
   |
71 | pub fn expand_lexer<'cx>(cx: &'cx mut base::ExtCtxt, sp: codemap::Span, args: &[ast::TokenTree]) -> Box<base::MacResult+'cx> {
   |                                                                                 ^^^^^^^^^^^^^^ undefined or not in scope
   |
   = help: you can import several candidates into scope (`use ...;`):
   = help:   `syntax::ext::proc_macro_shim::prelude::TokenTree`
   = help:   `syntax::tokenstream::TokenTree`

error[E0412]: type name `ast::TokenTree` is undefined or not in scope
  --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/lexer.rs:75:75
   |
75 | fn parse_lexer<'a>(cx: &mut base::ExtCtxt<'a>, sp: codemap::Span, args: &[ast::TokenTree]) -> PResult<'a, Box<base::MacResult+'static>>  {
   |                                                                           ^^^^^^^^^^^^^^ undefined or not in scope
   |
   = help: you can import several candidates into scope (`use ...;`):
   = help:   `syntax::ext::proc_macro_shim::prelude::TokenTree`
   = help:   `syntax::tokenstream::TokenTree`

error[E0433]: failed to resolve. Could not find `DeclKind` in `syntax::ast`
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/parser.rs:253:95
    |
253 |                     codemap::respan(DUMMY_SP, ast::StmtKind::Decl(P(codemap::respan(DUMMY_SP, ast::DeclKind::Local(local))), DUMMY_NODE_ID))
    |                                                                                               ^^^^^^^^^^^^^^^^^^^^ Could not find `DeclKind` in `syntax::ast`

error[E0412]: type name `ast::TokenTree` is undefined or not in scope
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/parser.rs:399:12
    |
399 |     tts: &[ast::TokenTree]
    |            ^^^^^^^^^^^^^^ undefined or not in scope
    |
    = help: you can import several candidates into scope (`use ...;`):
    = help:   `syntax::ext::proc_macro_shim::prelude::TokenTree`
    = help:   `syntax::tokenstream::TokenTree`

error[E0412]: type name `ast::TokenTree` is undefined or not in scope
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/parser.rs:407:12
    |
407 |     tts: &[ast::TokenTree]
    |            ^^^^^^^^^^^^^^ undefined or not in scope
    |
    = help: you can import several candidates into scope (`use ...;`):
    = help:   `syntax::ext::proc_macro_shim::prelude::TokenTree`
    = help:   `syntax::tokenstream::TokenTree`

error[E0412]: type name `ast::TokenTree` is undefined or not in scope
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/parser.rs:700:12
    |
700 |     tts: &[ast::TokenTree]
    |            ^^^^^^^^^^^^^^ undefined or not in scope
    |
    = help: you can import several candidates into scope (`use ...;`):
    = help:   `syntax::ext::proc_macro_shim::prelude::TokenTree`
    = help:   `syntax::tokenstream::TokenTree`

error[E0061]: this function takes 2 parameters but 3 parameters were supplied
  --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/lexer.rs:55:20
   |
55 |     let block = cx.block(DUMMY_SP, vec![], Some(cx.expr_match(DUMMY_SP, quote_expr!(cx, state), arms)));
   |                    ^^^^^ expected 2 parameters
   |
   = note: the following parameter types were expected: syntax::codemap::Span, std::vec::Vec<syntax::ast::Stmt>

error: the type of this value must be known in this context
  --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/lexer.rs:79:25
   |
79 |     let visibility = if parser.eat_keyword(token::keywords::Pub) {
   |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0061]: this function takes 2 parameters but 3 parameters were supplied
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/lexer.rs:202:12
    |
202 |         cx.block(DUMMY_SP,
    |            ^^^^^ expected 2 parameters
    |
    = note: the following parameter types were expected: syntax::codemap::Span, std::vec::Vec<syntax::ast::Stmt>

error[E0308]: mismatched types
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/parser.rs:251:32
    |
251 |                         attrs: None,
    |                                ^^^^ expected struct `syntax::util::ThinVec`, found enum `std::option::Option`
    |
    = note: expected type `syntax::util::ThinVec<syntax::codemap::Spanned<syntax::ast::Attribute_>>`
    = note:    found type `std::option::Option<_>`

error: no associated item named `Decl` found for type `syntax::ast::StmtKind` in the current scope
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/parser.rs:253:47
    |
253 |                     codemap::respan(DUMMY_SP, ast::StmtKind::Decl(P(codemap::respan(DUMMY_SP, ast::DeclKind::Local(local))), DUMMY_NODE_ID))
    |                                               ^^^^^^^^^^^^^^^^^^^

error[E0308]: match arms have incompatible types
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/parser.rs:239:37
    |
239 |             .map(|(sym, maybe_pat)| match maybe_pat {
    |                                     ^ expected struct `syntax::codemap::Spanned`, found struct `syntax::ast::Stmt`
    |
    = note: expected type `syntax::codemap::Spanned<_>`
    = note:    found type `syntax::ast::Stmt`
note: match arm with an incompatible type
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/parser.rs:255:25
    |
255 |                 None => cx.stmt_expr(cx.expr_method_call(DUMMY_SP,
    |                         ^

error[E0061]: this function takes 2 parameters but 3 parameters were supplied
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/parser.rs:284:28
    |
284 |             let block = cx.block(rspan, reduce_stmts, None);
    |                            ^^^^^ expected 2 parameters
    |
    = note: the following parameter types were expected: syntax::codemap::Span, std::vec::Vec<syntax::ast::Stmt>

error[E0061]: this function takes 2 parameters but 3 parameters were supplied
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/parser.rs:325:55
    |
325 |     stmts.push(cx.stmt_expr(cx.expr_loop(DUMMY_SP, cx.block(DUMMY_SP, vec![
    |                                                       ^^^^^ expected 2 parameters
    |
    = note: the following parameter types were expected: syntax::codemap::Span, std::vec::Vec<syntax::ast::Stmt>

error[E0061]: this function takes 2 parameters but 3 parameters were supplied
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/parser.rs:385:19
    |
385 |     let body = cx.block(DUMMY_SP, stmts, None);
    |                   ^^^^^ expected 2 parameters
    |
    = note: the following parameter types were expected: syntax::codemap::Span, std::vec::Vec<syntax::ast::Stmt>

error: the type of this value must be known in this context
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/parser.rs:459:25
    |
459 |     let visibility = if parser.eat_keyword(token::keywords::Pub) {
    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0061]: this function takes 3 parameters but 2 parameters were supplied
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/parser.rs:627:30
    |
627 |             cx.pat(DUMMY_SP, ast::PatKind::TupleStruct(cx.path_ident(DUMMY_SP, ident.0), None))
    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 3 parameters
    |
    = note: the following parameter types were expected: syntax::ast::Path, std::vec::Vec<syntax::ptr::P<syntax::ast::Pat>>, std::option::Option<usize>

error[E0061]: this function takes 3 parameters but 2 parameters were supplied
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/parser.rs:645:56
    |
645 |                             cx.arm(sp, vec![cx.pat(sp, ast::PatKind::TupleStruct(cx.path_ident(sp, terminal), Some(pats.clone())))], expr),
    |                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 3 parameters
    |
    = note: the following parameter types were expected: syntax::ast::Path, std::vec::Vec<syntax::ptr::P<syntax::ast::Pat>>, std::option::Option<usize>

error[E0061]: this function takes 2 parameters but 3 parameters were supplied
   --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/parser.rs:659:24
    |
659 |                     cx.block(DUMMY_SP, vec![quote_stmt!(cx, println!("reduce by {}", $rule_str);).unwrap()], Some(expr)));
    |                        ^^^^^ expected 2 parameters
    |
    = note: the following parameter types were expected: syntax::codemap::Span, std::vec::Vec<syntax::ast::Stmt>

error[E0277]: the trait bound `syntax::ext::base::TTMacroExpander: std::marker::Sized` is not satisfied
  --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/lib.rs:20:41
   |
20 |         base::SyntaxExtension::NormalTT(Box::new(parser::expand_parser), None, true));
   |                                         ^^^^^^^^
   |
   = note: `syntax::ext::base::TTMacroExpander` does not have a constant size known at compile-time
   = note: required by `std::boxed::<impl Box<T>>::new`

error[E0277]: the trait bound `syntax::ext::base::TTMacroExpander: std::marker::Sized` is not satisfied
  --> /home/omer/.cargo/registry/src/github.com-1ecc6299db9ec823/plex-0.0.2/src/lib.rs:23:41
   |
23 |         base::SyntaxExtension::NormalTT(Box::new(lexer::expand_lexer), None, true));
   |                                         ^^^^^^^^
   |
   = note: `syntax::ext::base::TTMacroExpander` does not have a constant size known at compile-time
   = note: required by `std::boxed::<impl Box<T>>::new`

error: aborting due to 15 previous errors

error: Could not compile `plex`.

Fixed again. I will look into using syntex+rustc_macro to reduce breakage in the future.