gluon_parser 0.6.2

The parser for the gluon programming language
Documentation
extern crate env_logger;

extern crate gluon_base as base;
extern crate gluon_parser as parser;

use base::ast::Expr;
use base::types::Type;
use support::{parse, typ};

mod support;

#[test]
fn function_type() {
    let _ = env_logger::init();

    let input = "let _ : Int -> Float -> String = 1 in 1";
    let expr = parse(input).unwrap_or_else(|err| panic!("{}", err.1));
    match expr.value {
        Expr::LetBindings(ref bindings, _) => {
            assert_eq!(
                bindings[0].typ,
                Some(Type::function(
                    vec![typ("Int")],
                    Type::function(vec![typ("Float")], typ("String")),
                ),)
            );
        }
        _ => panic!("Expected let"),
    }
}