Our grammar currently parses modules inside functions just fine. However, it 
doesn't look like it's possible to call any functions defined in one. For 
instance:

fn main () {
    use z;
    mod z {
        fn f () -> int { 19 }
    }
    z::f();
}

Note that the "use" has to be at the beginning of the block--that's enforced. 
This gives the error:

/tmp/foo.rs:2:8: 2:10 error: failed to resolve import: z
/tmp/foo.rs:2     use z;
                      ^~
error: failed to resolve imports
error: aborting due to 2 previous errors

It looks to me like modules are allowed here just because it's consistent with 
allowing other item types--struct and enum decls, for instance. Am I missing 
something obvious? In particular, I'm bad with the resolver; perhaps there's a 
way to write the "use" to make this work. If not, it would seem to me like 
removing them would be the sensible choice.

Thoughts?

John Clements

_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to