mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
Updated tests and error message for failed generic lookups.
This commit is contained in:
@@ -849,7 +849,7 @@ INLINE bool sema_resolve_symbol_common(SemaContext *context, NameResolve *name_r
|
||||
if (symbol) return name_resolve->found = symbol, true;
|
||||
}
|
||||
if (name_resolve->suppress_error) return name_resolve->found = NULL, true;
|
||||
RETURN_SEMA_ERROR_AT(name_resolve->span, "'%s' is defined in the generic module '%s', but no parameters where given.", found->name, found->unit->module->name->module);
|
||||
RETURN_SEMA_ERROR_AT(name_resolve->span, "'%s' is defined in the generic module '%s', did you forget the parameters '{ ... }'?", found->name, found->unit->module->name->module);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
module test;
|
||||
|
||||
import std::collections::elastic_array;
|
||||
fn void a()
|
||||
{
|
||||
List {int} x; // #error: Did you mean the struct 'List' in module std::collections::list? If so please add
|
||||
@@ -17,15 +17,30 @@ fn void c()
|
||||
|
||||
fn void d()
|
||||
{
|
||||
list::type_is_overaligned(); // #error: Did you mean the macro 'type_is_overaligned' in the generic module std::collections::list? If so, use 'type_is_overaligned{...}' instead
|
||||
list::type_is_overaligned(); // #error: Did you mean the macro 'std::collections::list::type_is_overaligned' in module std::collections::list? If so please add 'import std::collections::list'
|
||||
}
|
||||
|
||||
fn void d2()
|
||||
{
|
||||
elastic_array::type_is_overaligned(); // #error: 'type_is_overaligned' is defined in the generic module 'std::collections::elastic_array', did you forget the parameters '{ ... }'?
|
||||
}
|
||||
|
||||
fn void e()
|
||||
{
|
||||
List x; // #error: Did you mean the struct 'List' in the generic module std::collections::list? If so, use 'List{...}'
|
||||
List x; // #error: Did you mean the struct 'List' in module std::collections::list? If so please add 'import std::collections::list'
|
||||
}
|
||||
|
||||
fn void f()
|
||||
{
|
||||
ElasticArray x; // #error: 'ElasticArray' is defined in the generic module 'std::collections::elastic_array', did you forget the parameters '{ ... }'?
|
||||
}
|
||||
|
||||
fn void g()
|
||||
{
|
||||
(ElasticArray){}; // #error: 'ElasticArray' is defined in the generic module 'std::collections::elastic_array', did you forget the parameters '{ ... }'
|
||||
}
|
||||
|
||||
fn int main(String[] args)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@ import std;
|
||||
import abc;
|
||||
fn void main()
|
||||
{
|
||||
abc::test(); // #error: but no parameters where given
|
||||
abc::test(); // #error: 'test' is defined in the generic module 'abc', did you
|
||||
}
|
||||
module abc{Type};
|
||||
fn void test() {}
|
||||
@@ -5,6 +5,6 @@ import std::collections::maybe;
|
||||
fn void test()
|
||||
{
|
||||
maybe::Maybe{float} f = (Maybe) {.value=6.6, .has_value=true};
|
||||
Maybe x; // #error: but no parameters where given
|
||||
Maybe x; // #error: 'Maybe' is defined in the generic module 'std::collections::maybe', did you forget the parameters '{ ... }'
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user