"try!" macro stopped working after Rust upgrade

swizard

Here is a simple testcase, which still works on the playpen:

use std::num;
use std::str::FromStr;
use std::convert::From;

#[derive(Debug)]
struct Error(String);

impl From<num::ParseFloatError> for Error {
    fn from(err: num::ParseFloatError) -> Error {
        Error(format!("{}", err))
    }
}

fn parse(s: &String) -> Result<f64, Error> {
    Ok(try!(<f64 as FromStr>::from_str(&s[..])))
}

fn main() {
    println!("{:?}", parse(&"10.01".to_string()));
}

However, after I built the latest rustc from git (now it's rustc 1.1.0-dev (1114fcd94 2015-04-23)), it stopped compiling with following error:

<std macros>:6:1: 6:32 error: the trait `core::convert::From<core::num::ParseFloatError>` is not implemented for the type `Error` [E0277]
<std macros>:6 $ crate:: convert:: From:: from ( err ) ) } } )
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<std macros>:1:1: 6:48 note: in expansion of try!
exp.rs:15:8: 15:48 note: expansion site
error: aborting due to previous error

I'm unable to find out what's wrong. Why is the compiler unable to find my trait implementation?

huon

This looks like it is a bug: std::num::ParseFloatError and <f64 as FromStr>::Err are different types:

The impl From<num::ParseFloatError> for Error is using the latter, while <f64 as FromStr>::from_str(...) is returning the former.

I opened #24748 about it. I also opened #24747 about improving the diagnostics to make this easier to debug in future.

One can work around this by insteading implementing the trait for core::num::ParseFloatError. You'll need to load the core crate with extern crate core; and will need some feature gates.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

SQLite stopped working after upgrade

From Dev

GRUB Customizer stopped working after kernel upgrade

From Dev

Clipboard in nomachine stopped working after upgrade to 5.1.62

From Dev

Cacti stopped working after upgrade to Stretch

From Dev

VirtualBox stopped working after Win 10 upgrade

From Dev

Webmin stopped working after upgrade to Stretch

From Dev

Rabbit VCS stopped working after upgrade to 11.10

From Dev

Bluetooth stopped working after upgrade to fedora 32

From Dev

Printer stopped working after upgrade 16.04 to 18.04

From Dev

DNS resolver stopped working after upgrade to 20.04

From Java

Spring Boot - Validations stopped working after upgrade from 2.2.5 to 2.3.0

From Dev

gem install stopped working after upgrade to OS X 10.10 Yosemite

From Dev

GPG-Agent / Enigmail stopped working after upgrade to Ubuntu 15.10

From Dev

GPG-Agent / Enigmail stopped working after upgrade to Ubuntu 15.10

From Dev

VirtualBox 64 bit guest VM stopped working after upgrade

From Dev

L2TP/IPSec stopped working after openssl upgrade

From Dev

gem install stopped working after upgrade to OS X 10.10 Yosemite

From Dev

docker-ce: proxy password stopped working after upgrade

From Dev

Apache (Ubuntu) Virtual host stopped working after upgrade->restart

From Dev

Splash screens and icons stopped working after plugin upgrade

From Dev

Filezilla stopped working on upgrade to 16.04

From Dev

Apache2 + mod_fcgid + php stopped working after upgrade from Debian squeeze to wheezy

From Dev

Lenovo IdeaPad Z570 touchpad stopped working after upgrade to 15.04

From Dev

Alt-Key stopped working in gnome-terminal after upgrade to Ubuntu 19.04

From Dev

Overlay video feature stopped working after upgrade. Probably driver related

From Dev

qDebug() stopped to work after Qt upgrade

From Dev

vsFTPd stopped working after update

From Dev

Pithos stopped working after update!

From Dev

Preview stopped working after update

Related Related

  1. 1

    SQLite stopped working after upgrade

  2. 2

    GRUB Customizer stopped working after kernel upgrade

  3. 3

    Clipboard in nomachine stopped working after upgrade to 5.1.62

  4. 4

    Cacti stopped working after upgrade to Stretch

  5. 5

    VirtualBox stopped working after Win 10 upgrade

  6. 6

    Webmin stopped working after upgrade to Stretch

  7. 7

    Rabbit VCS stopped working after upgrade to 11.10

  8. 8

    Bluetooth stopped working after upgrade to fedora 32

  9. 9

    Printer stopped working after upgrade 16.04 to 18.04

  10. 10

    DNS resolver stopped working after upgrade to 20.04

  11. 11

    Spring Boot - Validations stopped working after upgrade from 2.2.5 to 2.3.0

  12. 12

    gem install stopped working after upgrade to OS X 10.10 Yosemite

  13. 13

    GPG-Agent / Enigmail stopped working after upgrade to Ubuntu 15.10

  14. 14

    GPG-Agent / Enigmail stopped working after upgrade to Ubuntu 15.10

  15. 15

    VirtualBox 64 bit guest VM stopped working after upgrade

  16. 16

    L2TP/IPSec stopped working after openssl upgrade

  17. 17

    gem install stopped working after upgrade to OS X 10.10 Yosemite

  18. 18

    docker-ce: proxy password stopped working after upgrade

  19. 19

    Apache (Ubuntu) Virtual host stopped working after upgrade->restart

  20. 20

    Splash screens and icons stopped working after plugin upgrade

  21. 21

    Filezilla stopped working on upgrade to 16.04

  22. 22

    Apache2 + mod_fcgid + php stopped working after upgrade from Debian squeeze to wheezy

  23. 23

    Lenovo IdeaPad Z570 touchpad stopped working after upgrade to 15.04

  24. 24

    Alt-Key stopped working in gnome-terminal after upgrade to Ubuntu 19.04

  25. 25

    Overlay video feature stopped working after upgrade. Probably driver related

  26. 26

    qDebug() stopped to work after Qt upgrade

  27. 27

    vsFTPd stopped working after update

  28. 28

    Pithos stopped working after update!

  29. 29

    Preview stopped working after update

HotTag

Archive