# Regression report stable-2015-10-29 vs. beta-2015-11-05 vs nightly-2015-11-19

**URL:** <https://internals.rust-lang.org/t/regression-report-stable-2015-10-29-vs-beta-2015-11-05-vs-nightly-2015-11-19/2922>\
**Category:** Uncategorized\
**Created:** [November 21, 2015, 12:55am UTC](https://internals.rust-lang.org/t/regression-report-stable-2015-10-29-vs-beta-2015-11-05-vs-nightly-2015-11-19/2922 "2015-11-21T00:55:25Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [November 21, 2015, 12:55am UTC](https://internals.rust-lang.org/t/regression-report-stable-2015-10-29-vs-beta-2015-11-05-vs-nightly-2015-11-19/2922/1 "2015-11-21T00:55:25Z")

</div>

[stable-2015-10-29 vs. beta-2015-11-05](https://gist.github.com/brson/0fa58baaf7c92277a462).

[stable-2015-10-29 vs. nightly-2015-11-19](https://gist.github.com/brson/f017be3b0f341e3bcc98).

## Beta root regressions, sorted by rank:

- [nanovg-0.3.0](https://crates.io/crates/nanovg) ([before](https://tools.taskcluster.net/task-inspector/#zyMD4bKSQhiMTNB8zCPe4Q)) ([after](https://tools.taskcluster.net/task-inspector/#eKR8EPnDQS6ahwV3782cXg))
- [cudd-sys-0.1.0](https://crates.io/crates/cudd-sys) ([before](https://tools.taskcluster.net/task-inspector/#E0VojVZ_TtSbKmdmjkiBjg)) ([after](https://tools.taskcluster.net/task-inspector/#YtyysTmtQ7GhTapEfcMnsg))
- [pinyin-0.0.4](https://crates.io/crates/pinyin) ([before](https://tools.taskcluster.net/task-inspector/#JDjphMm2QC2XSsinbK2dUg)) ([after](https://tools.taskcluster.net/task-inspector/#vaDviVfuR36MLVtFLojUQw))
- [fastcgi-1.0.0-alpha.2](https://crates.io/crates/fastcgi) ([before](https://tools.taskcluster.net/task-inspector/#Q6MDMdlmTRemLYbhMEvY4w)) ([after](https://tools.taskcluster.net/task-inspector/#UFrxvFvwQ06FD2XbAdvCCw))
- [ao-0.6.1](https://crates.io/crates/ao) ([before](https://tools.taskcluster.net/task-inspector/#K1SiLwYjTVqLiNFabww91g)) ([after](https://tools.taskcluster.net/task-inspector/#5S5JDAEPQ_yxzZIfLQo91w))

## Nightly root regressions, sorted by rank:

- [lru\_time\_cache-0.2.4](https://crates.io/crates/lru_time_cache) ([before](https://tools.taskcluster.net/task-inspector/#7WJftWKQQc24sE_8hIiQSQ)) ([after](https://tools.taskcluster.net/task-inspector/#BdJzhCXVRmOzgSWwGFXG3Q))
- [glib-0.0.5](https://crates.io/crates/glib) ([before](https://tools.taskcluster.net/task-inspector/#hERb0m_iQ_-Y8I9bofsS3g)) ([after](https://tools.taskcluster.net/task-inspector/#x4zJubNdRJWKDOJKaBvTdg))
- [message\_filter-0.1.5](https://crates.io/crates/message_filter) ([before](https://tools.taskcluster.net/task-inspector/#IbK8r9o7RU2nPYWbAMjsYg)) ([after](https://tools.taskcluster.net/task-inspector/#lijghRyFQG-w7obqdyP4CQ))
- [nanovg-0.3.0](https://crates.io/crates/nanovg) ([before](https://tools.taskcluster.net/task-inspector/#zyMD4bKSQhiMTNB8zCPe4Q)) ([after](https://tools.taskcluster.net/task-inspector/#yVlfdQZyT1mJwt83vSzhlw))
- [syncbox-0.2.4](https://crates.io/crates/syncbox) ([before](https://tools.taskcluster.net/task-inspector/#dG-MMDHKTnivaeptDVmzkA)) ([after](https://tools.taskcluster.net/task-inspector/#Y2j5n1UPQXCXBccQP9OPWw))
- [tcod-0.8.0](https://crates.io/crates/tcod) ([before](https://tools.taskcluster.net/task-inspector/#2Vnq_n9kQtmLhw8UvlgM9w)) ([after](https://tools.taskcluster.net/task-inspector/#eBNddXw_TMGqrv7ep7zkaA))
- [maidsafe\_utilities-0.1.2](https://crates.io/crates/maidsafe_utilities) ([before](https://tools.taskcluster.net/task-inspector/#MNh58hxjQkqWh7XRClIJ_A)) ([after](https://tools.taskcluster.net/task-inspector/#bnyMk-rBSn6QtA3VFntGWw))
- [cudd-sys-0.1.0](https://crates.io/crates/cudd-sys) ([before](https://tools.taskcluster.net/task-inspector/#E0VojVZ_TtSbKmdmjkiBjg)) ([after](https://tools.taskcluster.net/task-inspector/#N8h15puFR8G5KORPNNO8iA))
- [pinyin-0.0.4](https://crates.io/crates/pinyin) ([before](https://tools.taskcluster.net/task-inspector/#JDjphMm2QC2XSsinbK2dUg)) ([after](https://tools.taskcluster.net/task-inspector/#N1Hvz4FQQ1CHTXUAS_ySZg))
- [ao-0.6.1](https://crates.io/crates/ao) ([before](https://tools.taskcluster.net/task-inspector/#K1SiLwYjTVqLiNFabww91g)) ([after](https://tools.taskcluster.net/task-inspector/#91prVo0gQDKPxwc_rA3epQ))
- [bud-0.0.1](https://crates.io/crates/bud) ([before](https://tools.taskcluster.net/task-inspector/#-zpWjOt4RtyUEDypqKn4Hw)) ([after](https://tools.taskcluster.net/task-inspector/#3LioRZzJRIqWK4XkyE65Ew))
- [fastcgi-1.0.0-alpha.2](https://crates.io/crates/fastcgi) ([before](https://tools.taskcluster.net/task-inspector/#Q6MDMdlmTRemLYbhMEvY4w)) ([after](https://tools.taskcluster.net/task-inspector/#o6-tkGYgQ2-vdqbx3iY-zg))

# Analysis

I’ve only given a brief look at the betas, not nightlies.

- “unnecessary parens around `for` head expression” - nanovg. lint change
- “attribute should be applied to struct or enum” - cudd-sys. bug fix?
- “cannot infer appropriate lifetime” - pinyin. what’s this?
- “type annotations required” - fastcgi. what’s this?
- “attribute should be applied to function” - ao. similar bug fix to cudd-sys

Anybody know offhand what caused these?

cc @nikomatsakis there are two typecheck failures here.

---

<div class="post-metadata">

**Author:** ![eefriedman](https://avatars.discourse-cdn.com/v4/letter/e/ec9cab/32.png) [@eefriedman](https://internals.rust-lang.org/u/eefriedman)\
**Post date:** [November 21, 2015, 1:20am UTC](https://internals.rust-lang.org/t/regression-report-stable-2015-10-29-vs-beta-2015-11-05-vs-nightly-2015-11-19/2922/2 "2015-11-21T01:20:59Z")

</div>

- “attribute should be applied to struct or enum”
- “attribute should be applied to function”

Yes; we were missing a check to make sure the attribute wasn’t just being ignored. See [https://github.com/rust-lang/rust/pull/28650](https://github.com/rust-lang/rust/pull/28650) . If this is causing too many regressions, we could probably make it a soft error.

pinyin is being tracked at [https://github.com/rust-lang/rust/issues/28853](https://github.com/rust-lang/rust/issues/28853) .

Not sure what the fastcgi regression is; I think it reduces to this:

```rust
use std::io::{Read, Cursor};
fn main() {
    let x = Vec::new();
    let _x: &mut Read = &mut Cursor::new(x.as_ref());
}

```

---

<div class="post-metadata">

**Author:** ![eefriedman](https://avatars.discourse-cdn.com/v4/letter/e/ec9cab/32.png) [@eefriedman](https://internals.rust-lang.org/u/eefriedman)\
**Post date:** [November 21, 2015, 1:30am UTC](https://internals.rust-lang.org/t/regression-report-stable-2015-10-29-vs-beta-2015-11-05-vs-nightly-2015-11-19/2922/3 "2015-11-21T01:30:25Z")

</div>

The glib regression is [https://github.com/rust-lang/rust/issues/29857](https://github.com/rust-lang/rust/issues/29857) .

tcod is getting hit by the new AsRef implementation on Box.

---

<div class="post-metadata">

**Author:** ![bluss](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/bluss/32/2264_2.png) [@bluss](https://internals.rust-lang.org/u/bluss)\
**Post date:** [November 21, 2015, 1:47am UTC](https://internals.rust-lang.org/t/regression-report-stable-2015-10-29-vs-beta-2015-11-05-vs-nightly-2015-11-19/2922/4 "2015-11-21T01:47:26Z")

</div>

For pinyin, the affected code looks like:

```rust
    let py = re_phonetic_symbol.replace_all(&p, |caps: &Captures| {
        let cap = caps.at(0).unwrap();
        let symbol = match PHONETIC_SYMBOL_MAP.get(&cap) {
            Some(&v) => v,
            None => "",
        };

```

The error is:

```rust
src/lib.rs:157:24: 157:29 error: cannot infer an appropriate lifetime for lifetime parameter `'t` due to conflicting req
uirements [E0495]                                                                                                       
src/lib.rs:157 let cap = caps.at(0).unwrap();                                                                   
                                      ^ ~~~~                                                                             

```

`Captures` is: `impl<'t> Captures<'t>`

And the method has signature: `fn at(&self, i: usize) -> Option<&'t str>`

Something must have changed in how the explicit type `caps: &Captures` in the closure is treated?

I’ve submitted a PR to fix the crate by a very simple change, `cap` instead of `&cap` [(PR)](https://github.com/mozillazg/rust-pinyin/pull/1). So, why does this work?

---

<div class="post-metadata">

**Author:** ![arielb1](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/arielb1/32/3044_2.png) [@arielb1](https://internals.rust-lang.org/u/arielb1)\
**Post date:** [November 21, 2015, 6:02pm UTC](https://internals.rust-lang.org/t/regression-report-stable-2015-10-29-vs-beta-2015-11-05-vs-nightly-2015-11-19/2922/5 "2015-11-21T18:02:27Z")

</div>

I documented the pinyin regression at [https://github.com/rust-lang/rust/issues/28854](https://github.com/rust-lang/rust/issues/28854) - this is an unfortunate interaction of “bridge” impls causing a deref coercion to be skipped and the lack of subtyping in trait matching - the code used to work because of a soundness hole.

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [December 11, 2015, 10:29pm UTC](https://internals.rust-lang.org/t/regression-report-stable-2015-10-29-vs-beta-2015-11-05-vs-nightly-2015-11-19/2922/6 "2015-12-11T22:29:09Z")

</div>

maidsafe\_utilities is because raw\_pointer\_derive was [removed](https://github.com/rust-lang/rust/pull/29882).

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [January 6, 2016, 7:50pm UTC](https://internals.rust-lang.org/t/regression-report-stable-2015-10-29-vs-beta-2015-11-05-vs-nightly-2015-11-19/2922/7 "2016-01-06T19:50:10Z")

</div>

The tcod regression is on 1.5 stable: [https://github.com/rust-lang/rust/issues/30744](https://github.com/rust-lang/rust/issues/30744)

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/system/32/14092_2.png) [@system](https://internals.rust-lang.org/u/system)\
**Post date:** [March 25, 2019, 8:25am UTC](https://internals.rust-lang.org/t/regression-report-stable-2015-10-29-vs-beta-2015-11-05-vs-nightly-2015-11-19/2922/8 "2019-03-25T08:25:29Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
