make -j8 2240.88s user 25.49s system 131% cpu 28:39.00 total
- stage0
- syntax
- typeck: 6.075
- translation: 5.796
- LLVM passes: 59.256
- rustc
- typeck: 6.727
- syntax
- translation: 20.537
| test: | |
| rm -f liberoc.rlib | |
| rustc eroc.rs | |
| rustc -L . -C codegen_units=2 unicode.rs |
| #![crate_type = "lib"] | |
| #![feature(associated_types)] | |
| #![no_implicit_prelude] | |
| use std::boxed::Box; | |
| trait Fn { | |
| type Args; | |
| type Result; |
| #![feature(unboxed_closures)] | |
| struct Struct; | |
| #[cfg(error)] | |
| impl Struct { | |
| fn search<F>(&self, f: F) -> bool where F: FnMut(()) -> bool { | |
| self.search(|t| f(t)) | |
| } | |
| } |
make -j8 2240.88s user 25.49s system 131% cpu 28:39.00 total
(That's an unit test)
As part of the "unboxing closures" PR, I need to unbox the nested closure in the check function, which I have done in this commit. However, when I ran make check-stage1-collections I got a compiler error about the compiler not being able to infer the type of the closure in the check_intersection function. The weird part is that, upon isolating the unit test (which I did to understand/fix the compiler error), I found out that the code actually compiles!
make -j8 2074.12s user 23.50s system 131% cpu 26:34.38 total
| #![feature(lang_items)] | |
| #![crate_type = "rlib"] | |
| #![no_std] | |
| // This core crate has an `Option` that uses unboxed closures (see #19467) | |
| extern crate core; | |
| use core::prelude::{Iterator, IteratorExt, Option, None}; | |
| use core::slice::SlicePrelude; |
| #![feature(default_type_params)] | |
| enum Enum<L = (), R = ()> { | |
| Both(L, R), | |
| Left(L), | |
| Right(R), | |
| } | |
| fn main() { | |
| // I'm expecting the compiler to choose the type `Enum<u8, ()>` here |
| #![feature(slicing_syntax)] | |
| extern crate criterion; | |
| use criterion::Criterion; | |
| use std::cmp::min; | |
| use std::io::{IoError, IoResult}; | |
| use std::raw::Repr; | |
| use std::{io, mem, ptr, raw, slice}; |
| #![feature(slicing_syntax)] | |
| extern crate criterion; | |
| use criterion::Criterion; | |
| use std::cmp::min; | |
| use std::io::{IoError, IoResult}; | |
| use std::raw::Repr; | |
| use std::{io, mem, ptr, raw, slice}; |