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}; |