Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rusti: use prevents any statements from being executed afterwards #5937

Closed
danluu opened this issue Apr 18, 2013 · 0 comments
Closed

rusti: use prevents any statements from being executed afterwards #5937

danluu opened this issue Apr 18, 2013 · 0 comments

Comments

@danluu
Copy link
Contributor

danluu commented Apr 18, 2013

rusti> use core::rand::RngUtil;
()
<anon>:31:0: 31:24 error: `use` and `extern mod` declarations must precede items
<anon>:31 use core::rand::RngUtil;
          ^~~~~~~~~~~~~~~~~~~~~~~~
error: aborting due to previous error
rust: task failed at 'explicit failure', /Users/danluu/Downloads/rust-0.6/src/libsyntax/diagnostic.rs:99
rusti> assert!(true);
<anon>:31:0: 31:24 error: `use` and `extern mod` declarations must precede items
<anon>:31 use core::rand::RngUtil;
          ^~~~~~~~~~~~~~~~~~~~~~~~
error: aborting due to previous error
rust: task failed at 'explicit failure', /Users/danluu/Downloads/rust-0.6/src/libsyntax/diagnostic.rs:99

Is this considered to be worth fixing? I think I hack in a kludge that would fix this, but there's this big comment in rusti.c:

/**
 * The AST (or the rest of rustc) are not sendable yet,
 * so recorded things are printed to strings. A terrible hack that
 * needs changes to rustc in order to be outed. This is unfortunately
 * going to cause the REPL to regress in parser performance,
 * because it has to parse the statements and view_items on each
 * input.
 */

If that change will fix it anyway, I'm not sure it's worth making a temporary fix.

bors added a commit that referenced this issue May 14, 2013
These few commits address a few existing issues:

* #5469 - adding regression tests for `rusti`. This adds unit tests to the `rusti.rc` file (which needed some reorganization of the Makefile, see the first commit message). These are super-simple right now, and sadly can't test the output of the tests. I worked for a bit on making a compiletest version of the rusti tests, but I ended up hitting something which blocked me, although I've forgotten it by this point.
* #5937 - regression test added, and it's fixed
* #5803 - just doesn't appear to happen any more
* #5784 - it's no longer broken, and it no longer spits out warnings about unused variables.

I also did some investigation into #5774, and you may want to read the comment I left on the bug. The gist of the situation is that C++ exceptions across JIT code don't look like they're working, even though they [should be working](https://github.com/mozilla/rust/blob/3aa1122ec25d15a2a73a295f8298ad9c38b09a10/src/rustllvm/RustWrapper.cpp#L387). If anyone has any insight on this, that would be awesome!
flip1995 pushed a commit to flip1995/rust that referenced this issue Sep 24, 2020
option_if_let_else - distinguish pure from impure else expressions

Addresses partially rust-lang#5821.

changelog: improve the lint `option_if_let_else`. Suggest `map_or` or `map_or_else` based on the else expression purity.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants