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
(Use triple-backticks before and after code blocks to have github format it properly.)
The problem is that typeck::dict::resolve_expr should also handle the cases of method_param and method_iface for expr_field. It's probably an easy fix. I'll look into it tomorrow.
This problem is illustrated with the following code:
use std;
import std::io::*;
iface ninja_str {
fn to_str() -> str;
}
impl of ninja_str for str {
fn to_str() -> str { self }
}
impl of ninja_str for [str] {
fn to_str() -> str {
alt vec::len(self) {
0u { "" }
x {
vec::foldl(self[0], vec::slice(self, 1u, x)) {|iter, y|
iter + ", " + y
}
}
}
}
}
// this works fine
fn print<T: ninja_str>(str: T) {
println(str.to_str());
}
impl ninja_file for writer {
// this causes 'error: internal error in instantiate'
fn build<T: ninja_str>(str: T) {
self.write(str::bytes(str.to_str()));
}
}
fn main() {
print("hello, world");
}
The text was updated successfully, but these errors were encountered: