rust-chrono seems to fail building. I'm not sure if this is because of an update in the time
library, or an update in rust nightly, or both. It is using time v0.1.3 instead of v0.1.2 though.
$ cargo build -v
Fresh gcc v0.1.1 (https://github.com/alexcrichton/gcc-rs#d35c34c8)
Fresh time v0.1.3 (https://github.com/rust-lang/time#914a4840)
Compiling chrono v0.1.4 (file:///home/daboross/Projects/CheckedOut/rust-chrono)
Running `rustc /home/daboross/Projects/CheckedOut/rust-chrono/src/lib.rs --crate-name chrono --crate-type lib -g -C metadata=0738b31a438449f6 -C extra-filename=-0738b31a438449f6 --out-dir /home/daboross/Projects/CheckedOut/rust-chrono/target --dep-info /home/daboross/Projects/CheckedOut/rust-chrono/target/.fingerprint/chrono-0738b31a438449f6/dep-lib-chrono -L /home/daboross/Projects/CheckedOut/rust-chrono/target -L /home/daboross/Projects/CheckedOut/rust-chrono/target/deps --extern time=/home/daboross/Projects/CheckedOut/rust-chrono/target/deps/libtime-1d6301158a291dc6.rlib -L /home/daboross/Projects/CheckedOut/rust-chrono/target/build/time-1d6301158a291dc6/out`
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:381:5: 395:6 error: method `add` has an incompatible type for trait: expected struct naive::date::NaiveDate, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:381 fn add(&self, rhs: &Duration) -> NaiveDate {
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:382 // TODO overflow currently fails
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:383
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:384 let year = self.year();
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:385 let (mut year_div_400, year_mod_400) = div_mod_floor(year, 400);
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:386 let cycle = internals::yo_to_cycle(year_mod_400 as u32, self.of().ordinal());
...
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:400:5: 400:66 error: method `add` has an incompatible type for trait: expected struct std::time::duration::Duration, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:400 fn add(&self, rhs: &NaiveDate) -> NaiveDate { rhs.add(self) }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:400:59: 400:63 error: mismatched types: expected `std::time::duration::Duration`, found `&std::time::duration::Duration` (expected struct std::time::duration::Duration, found &-ptr)
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:400 fn add(&self, rhs: &NaiveDate) -> NaiveDate { rhs.add(self) }
^~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:404:5: 412:6 error: method `sub` has an incompatible type for trait: expected struct naive::date::NaiveDate, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:404 fn sub(&self, rhs: &NaiveDate) -> Duration {
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:405 let year1 = self.year();
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:406 let year2 = rhs.year();
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:407 let (year1_div_400, year1_mod_400) = div_mod_floor(year1, 400);
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:408 let (year2_div_400, year2_mod_400) = div_mod_floor(year2, 400);
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:409 let cycle1 = internals::yo_to_cycle(year1_mod_400 as u32, self.of().ordinal()) as i64;
...
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:417:5: 417:68 error: method `sub` has an incompatible type for trait: expected struct naive::date::NaiveDate, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:417 fn sub(&self, rhs: &Duration) -> NaiveDate { self.add(&-*rhs) }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:417:59: 417:65 error: mismatched types: expected `std::time::duration::Duration`, found `&std::time::duration::Duration` (expected struct std::time::duration::Duration, found &-ptr)
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/date.rs:417 fn sub(&self, rhs: &Duration) -> NaiveDate { self.add(&-*rhs) }
^~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:175:5: 190:6 error: method `add` has an incompatible type for trait: expected struct naive::time::NaiveTime, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:175 fn add(&self, rhs: &Duration) -> NaiveTime {
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:176 // there is no direct interface in `Duration` to get only the nanosecond part,
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:177 // so we need to do the additional calculation here.
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:178 let rhs2 = *rhs - Duration::seconds(rhs.num_seconds());
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:179 let mut secs = self.secs + (rhs.num_seconds() % 86400 + 86400) as u32;
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:180 let mut nanos = self.frac + rhs2.num_nanoseconds().unwrap() as u32;
...
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:195:5: 195:66 error: method `add` has an incompatible type for trait: expected struct std::time::duration::Duration, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:195 fn add(&self, rhs: &NaiveTime) -> NaiveTime { rhs.add(self) }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:195:59: 195:63 error: mismatched types: expected `std::time::duration::Duration`, found `&std::time::duration::Duration` (expected struct std::time::duration::Duration, found &-ptr)
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:195 fn add(&self, rhs: &NaiveTime) -> NaiveTime { rhs.add(self) }
^~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:199:5: 212:6 error: method `sub` has an incompatible type for trait: expected struct naive::time::NaiveTime, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:199 fn sub(&self, rhs: &NaiveTime) -> Duration {
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:200 // the number of whole non-leap seconds
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:201 let secs = self.secs as i64 - rhs.secs as i64 - 1;
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:202
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:203 // the fractional second from the rhs to the next non-leap second
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:204 let maxnanos = if rhs.frac >= 1_000_000_000 {2_000_000_000} else {1_000_000_000};
...
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:217:5: 217:68 error: method `sub` has an incompatible type for trait: expected struct naive::time::NaiveTime, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:217 fn sub(&self, rhs: &Duration) -> NaiveTime { self.add(&-*rhs) }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:217:59: 217:65 error: mismatched types: expected `std::time::duration::Duration`, found `&std::time::duration::Duration` (expected struct std::time::duration::Duration, found &-ptr)
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/time.rs:217 fn sub(&self, rhs: &Duration) -> NaiveTime { self.add(&-*rhs) }
^~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:166:5: 183:6 error: method `add` has an incompatible type for trait: expected struct naive::datetime::NaiveDateTime, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:166 fn add(&self, rhs: &Duration) -> NaiveDateTime {
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:167 // Duration does not directly give its parts, so we need some additional calculations.
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:168 let days = rhs.num_days();
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:169 let nanos = (*rhs - Duration::days(days)).num_nanoseconds().unwrap();
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:170 debug_assert!(Duration::days(days) + Duration::nanoseconds(nanos) == *rhs);
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:171 debug_assert!(-86400_000_000_000 < nanos && nanos < 86400_000_000_000);
...
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:188:5: 188:74 error: method `add` has an incompatible type for trait: expected struct std::time::duration::Duration, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:188 fn add(&self, rhs: &NaiveDateTime) -> NaiveDateTime { rhs.add(self) }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:188:67: 188:71 error: mismatched types: expected `std::time::duration::Duration`, found `&std::time::duration::Duration` (expected struct std::time::duration::Duration, found &-ptr)
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:188 fn add(&self, rhs: &NaiveDateTime) -> NaiveDateTime { rhs.add(self) }
^~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:192:5: 194:6 error: method `sub` has an incompatible type for trait: expected struct naive::datetime::NaiveDateTime, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:192 fn sub(&self, rhs: &NaiveDateTime) -> Duration {
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:193 (self.date - rhs.date) + (self.time - rhs.time)
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:194 }
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:199:5: 199:72 error: method `sub` has an incompatible type for trait: expected struct naive::datetime::NaiveDateTime, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:199 fn sub(&self, rhs: &Duration) -> NaiveDateTime { self.add(&-*rhs) }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:199:63: 199:69 error: mismatched types: expected `std::time::duration::Duration`, found `&std::time::duration::Duration` (expected struct std::time::duration::Duration, found &-ptr)
/home/daboross/Projects/CheckedOut/rust-chrono/src/naive/datetime.rs:199 fn sub(&self, rhs: &Duration) -> NaiveDateTime { self.add(&-*rhs) }
^~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:265:5: 267:6 error: method `add` has an incompatible type for trait: expected struct date::Date, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:265 fn add(&self, rhs: &Duration) -> Date<Off> {
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:266 Date { date: self.date + *rhs, offset: self.offset.clone() }
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:267 }
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:272:5: 272:66 error: method `add` has an incompatible type for trait: expected struct std::time::duration::Duration, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:272 fn add(&self, rhs: &Date<Off>) -> Date<Off> { rhs.add(self) }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:272:59: 272:63 error: mismatched types: expected `std::time::duration::Duration`, found `&std::time::duration::Duration` (expected struct std::time::duration::Duration, found &-ptr)
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:272 fn add(&self, rhs: &Date<Off>) -> Date<Off> { rhs.add(self) }
^~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:276:5: 278:6 error: method `sub` has an incompatible type for trait: expected struct date::Date, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:276 fn sub(&self, rhs: &Date<Off2>) -> Duration {
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:277 self.date - rhs.date
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:278 }
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:283:5: 283:68 error: method `sub` has an incompatible type for trait: expected struct date::Date, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:283 fn sub(&self, rhs: &Duration) -> Date<Off> { self.add(&-*rhs) }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:283:59: 283:65 error: mismatched types: expected `std::time::duration::Duration`, found `&std::time::duration::Duration` (expected struct std::time::duration::Duration, found &-ptr)
/home/daboross/Projects/CheckedOut/rust-chrono/src/date.rs:283 fn sub(&self, rhs: &Duration) -> Date<Off> { self.add(&-*rhs) }
^~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:114:5: 116:6 error: method `add` has an incompatible type for trait: expected struct time::Time, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:114 fn add(&self, rhs: &Duration) -> Time<Off> {
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:115 Time { time: self.time + *rhs, offset: self.offset.clone() }
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:116 }
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:121:5: 121:66 error: method `add` has an incompatible type for trait: expected struct std::time::duration::Duration, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:121 fn add(&self, rhs: &Time<Off>) -> Time<Off> { rhs.add(self) }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:121:59: 121:63 error: mismatched types: expected `std::time::duration::Duration`, found `&std::time::duration::Duration` (expected struct std::time::duration::Duration, found &-ptr)
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:121 fn add(&self, rhs: &Time<Off>) -> Time<Off> { rhs.add(self) }
^~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:125:5: 127:6 error: method `sub` has an incompatible type for trait: expected struct time::Time, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:125 fn sub(&self, rhs: &Time<Off2>) -> Duration {
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:126 self.time - rhs.time
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:127 }
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:132:5: 132:68 error: method `sub` has an incompatible type for trait: expected struct time::Time, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:132 fn sub(&self, rhs: &Duration) -> Time<Off> { self.add(&-*rhs) }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:132:59: 132:65 error: mismatched types: expected `std::time::duration::Duration`, found `&std::time::duration::Duration` (expected struct std::time::duration::Duration, found &-ptr)
/home/daboross/Projects/CheckedOut/rust-chrono/src/time.rs:132 fn sub(&self, rhs: &Duration) -> Time<Off> { self.add(&-*rhs) }
^~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:186:5: 188:6 error: method `add` has an incompatible type for trait: expected struct datetime::DateTime, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:186 fn add(&self, rhs: &Duration) -> DateTime<Off> {
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:187 DateTime { datetime: self.datetime + *rhs, offset: self.offset.clone() }
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:188 }
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:193:5: 193:74 error: method `add` has an incompatible type for trait: expected struct std::time::duration::Duration, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:193 fn add(&self, rhs: &DateTime<Off>) -> DateTime<Off> { rhs.add(self) }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:193:67: 193:71 error: mismatched types: expected `std::time::duration::Duration`, found `&std::time::duration::Duration` (expected struct std::time::duration::Duration, found &-ptr)
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:193 fn add(&self, rhs: &DateTime<Off>) -> DateTime<Off> { rhs.add(self) }
^~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:197:5: 199:6 error: method `sub` has an incompatible type for trait: expected struct datetime::DateTime, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:197 fn sub(&self, rhs: &DateTime<Off2>) -> Duration {
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:198 self.datetime - rhs.datetime
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:199 }
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:204:5: 204:72 error: method `sub` has an incompatible type for trait: expected struct datetime::DateTime, found &-ptr [E0053]
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:204 fn sub(&self, rhs: &Duration) -> DateTime<Off> { self.add(&-*rhs) }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:204:63: 204:69 error: mismatched types: expected `std::time::duration::Duration`, found `&std::time::duration::Duration` (expected struct std::time::duration::Duration, found &-ptr)
/home/daboross/Projects/CheckedOut/rust-chrono/src/datetime.rs:204 fn sub(&self, rhs: &Duration) -> DateTime<Off> { self.add(&-*rhs) }
^~~~~~
error: aborting due to 36 previous errors
Could not compile `chrono`.
Caused by:
Process didn't exit successfully: `rustc /home/daboross/Projects/CheckedOut/rust-chrono/src/lib.rs --crate-name chrono --crate-type lib -g -C metadata=0738b31a438449f6 -C extra-filename=-0738b31a438449f6 --out-dir /home/daboross/Projects/CheckedOut/rust-chrono/target --dep-info /home/daboross/Projects/CheckedOut/rust-chrono/target/.fingerprint/chrono-0738b31a438449f6/dep-lib-chrono -L /home/daboross/Projects/CheckedOut/rust-chrono/target -L /home/daboross/Projects/CheckedOut/rust-chrono/target/deps --extern time=/home/daboross/Projects/CheckedOut/rust-chrono/target/deps/libtime-1d6301158a291dc6.rlib -L /home/daboross/Projects/CheckedOut/rust-chrono/target/build/time-1d6301158a291dc6/out` (status=101)