You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fn main() {
chan_from_global_ptr() {|po|
// The type of po looks inferrable but isn't
po.send(true);
};
}
type chan<T> = T;
impl chan<T: send> for chan<T> {
fn send(+v: T) { fail }
}
fn chan_from_global_ptr<T: send>(
f: fn~(chan<T>)
) {
}
/home/banderson/Dev/rust2/src/test/run-pass/test.rs:15:8: 15:15 error: the type of this value must be known in this context
/home/banderson/Dev/rust2/src/test/run-pass/test.rs:15 po.send(true);
The text was updated successfully, but these errors were encountered:
I think this inference failure is actually legitimate. The problem is the type declaration type chan<T> = T, which is pretty meaningless. So, in effect, you wind up with an expected type for the closure of fn~(T), which means that when we go to invoke the method, sure enough, we know nothing about what po is expected to be (it's T!).
If you change type chan<T> = T to enum chan<T> = uint or some such, it works fine.
More robust comment parsing
fixesrust-lang#2170
I haven't ported the entire test suite yet. Once we've done that, I will remove the old parsing system (or in fact, turn them into errors so that accidental usage of old-style comments will be detected)
The text was updated successfully, but these errors were encountered: