Email or username:

Password:

Forgot your password?
Aleksei � Matiushkin

Rust installation is as easy as they say at rust-lang.org/learn/get-starte But then it’s simply freaking new users out.

I wanted to print out an AST of some simple code. I googled for the snippet, created a project, guessed the dependency format in `Cargo.toml`, and boom. Syntax error. OK, `syn` crate fucks backward compatibility. I rewrote the code, tested it in the playground, copy-pasted it into my `foo.rs` and boom.

`Expr` cannot be formatted using `{:?}` because it doesn't implement `Debug`

1/2

10 comments
Aleksei � Matiushkin

Well, I googled the error message to no luck, I read through the documentation, and I must admit the code from the documentation example docs.rs/syn/2.0.38/syn/fn.pars simply does not compile.

OK, I went back to the playground and ran it from there. The promised AST for `foo(42)` looks like, well, `foo (42)` (notice the space.)

The language itself might (or might not) be brilliant, but the toolchain simply sucks.

Error messages are poor, and documentation is too succinct.

Would not recommend.

Well, I googled the error message to no luck, I read through the documentation, and I must admit the code from the documentation example docs.rs/syn/2.0.38/syn/fn.pars simply does not compile.

OK, I went back to the playground and ran it from there. The promised AST for `foo(42)` looks like, well, `foo (42)` (notice the space.)

Stas

@mudasobwa к сожалению, многие примеры отстают по версиям компилятора (сам с таким сталкивался не раз)
но правильно примерно так

Aleksei � Matiushkin

@vsv я умею копипастить из доков, оно и не компилируется с `cargo build` (и, кажется, я понимаю, почему, но блин)

Stas

@mudasobwa да, согласен. меня тоже эти вещи огорчают.
такое ощущение, что технические писатели (если они есть) не поспевают за идейными разработчиками.
вроде как, с новыми версия компилятора, обычный hello world не компилириуется, который пример с сайта

Aleksei � Matiushkin

@vsv кстати, нет, `cargo run` вместо билд тоже не помогает. Наверное, надо включить `dev` таргет для включения `debug`, но опять блин, как?!

Насчет технических писателей, ну вот я как-то справляюсь сам, без писателей, и все остальные к эликсире тоже. Ну вот, например: hexdocs.pm/finitomata

Stas

@mudasobwa
да, судя по всему syn не поддерживает debug и нужно использовать макрос quote или реализовать дебаг вручную

хз. может разработчикам сказали "не отвлекайтесь на писательство, пилите новые версии и убирайте баги". но как в этом разбираться?

Aleksei � Matiushkin

@vsv в плейграунде все работает

Stas

@mudasobwa
Хм, забавно. В чем же разница плейграунда и локального компилятора?
Попробую поразбираюсь, прям интересно стало.

Aleksei � Matiushkin

@vsv ну как, версии, плюс они могли имплементировать эти трейты для почти всего

Stas

@mudasobwa ну ладно, у меня 1.71 стоит, у тебя скорей всего такой же как и там – 1.73, крэйт syn последний, скорей всего везде 2.0.38
Может какие-то опции компиляции, хз.

Go Up