Clean up error messages
This commit is contained in:
15
k.krak
15
k.krak
@@ -212,7 +212,6 @@ fun main(argc: int, argv: **char): int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var unify: fun(*binding<type>, *binding<type>): void = fun(t1: *binding<type>, t2: *binding<type>) {
|
var unify: fun(*binding<type>, *binding<type>): void = fun(t1: *binding<type>, t2: *binding<type>) {
|
||||||
println("trying to unify " + t1->bound_to->to_string() + " and " + t2->bound_to->to_string())
|
|
||||||
if (t1->bound_to->equality(t2->bound_to, false, false) || t1->bound_to->is_unknown())
|
if (t1->bound_to->equality(t2->bound_to, false, false) || t1->bound_to->is_unknown())
|
||||||
t1->set(t2->bound_to)
|
t1->set(t2->bound_to)
|
||||||
else if (t2->bound_to->is_unknown())
|
else if (t2->bound_to->is_unknown())
|
||||||
@@ -246,16 +245,16 @@ fun main(argc: int, argv: **char): int {
|
|||||||
var traverse_for_select: fun(*tree<ast>): void = fun(t: *tree<ast>) {
|
var traverse_for_select: fun(*tree<ast>): void = fun(t: *tree<ast>) {
|
||||||
match (t->data) {
|
match (t->data) {
|
||||||
ast::_binding(b) if (!t->data._binding.second->bound()) {
|
ast::_binding(b) if (!t->data._binding.second->bound()) {
|
||||||
println("Attempting to use our inferenced type " + unbound_types[t]->bound_to->to_string() + " to decide what to bind " + to_string(t->data) + " to form options:")
|
|
||||||
var filtered_options = multiple_binding_options[t].filter(fun(p: *tree<ast>): bool return unbound_types[t]->bound_to->equality(get_type(p)->bound_to, false, true);)
|
var filtered_options = multiple_binding_options[t].filter(fun(p: *tree<ast>): bool return unbound_types[t]->bound_to->equality(get_type(p)->bound_to, false, true);)
|
||||||
multiple_binding_options[t].for_each(fun(p: *tree<ast>) {
|
if (filtered_options.size == 0) {
|
||||||
println("\t" + to_string(p->data) + " of type " + get_type(p)->bound_to->to_string())
|
println("Attempting to use our inferenced type " + unbound_types[t]->bound_to->to_string() + " to decide what to bind " + to_string(t->data) + " to from options:")
|
||||||
})
|
multiple_binding_options[t].for_each(fun(p: *tree<ast>) { println("\t" + to_string(p->data) + " of type " + get_type(p)->bound_to->to_string()); })
|
||||||
if (filtered_options.size == 0)
|
|
||||||
error("no options remain after filtering overloads by type for " + to_string(t->data))
|
error("no options remain after filtering overloads by type for " + to_string(t->data))
|
||||||
else if (filtered_options.size > 1)
|
} else if (filtered_options.size > 1) {
|
||||||
|
println("Attempting to use our inferenced type " + unbound_types[t]->bound_to->to_string() + " to decide what to bind " + to_string(t->data) + " to form options:")
|
||||||
|
multiple_binding_options[t].for_each(fun(p: *tree<ast>) { println("\t" + to_string(p->data) + " of type " + get_type(p)->bound_to->to_string()); })
|
||||||
error("too many options remain after filtering overloads by type for " + to_string(t->data))
|
error("too many options remain after filtering overloads by type for " + to_string(t->data))
|
||||||
else
|
} else
|
||||||
set_ast_binding(t, filtered_options[0])
|
set_ast_binding(t, filtered_options[0])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user