Skip to content

Commit

Permalink
checker: cleanup the generic tests (#20553)
Browse files Browse the repository at this point in the history
  • Loading branch information
yuyi98 committed Jan 16, 2024
1 parent 3b19864 commit e30182c
Show file tree
Hide file tree
Showing 18 changed files with 53 additions and 53 deletions.
10 changes: 5 additions & 5 deletions vlib/v/checker/tests/generic_fn_decl_err.out
@@ -1,35 +1,35 @@
vlib/v/checker/tests/generic_fn_decl_err.vv:19:29: error: generic type name `P` is not mentioned in fn `create1[U]`
17 | }
18 |
19 | fn (r Db) create1<U>(u U, p P) {
19 | fn (r Db) create1[U](u U, p P) {
| ^
20 | println('Yo')
21 | }
vlib/v/checker/tests/generic_fn_decl_err.vv:23:29: error: generic type name `P` is not mentioned in fn `create2[U]`
21 | }
22 |
23 | fn (r Db) create2<U>(u U, p &P) {
23 | fn (r Db) create2[U](u U, p &P) {
| ~~
24 | println('Yo')
25 | }
vlib/v/checker/tests/generic_fn_decl_err.vv:27:29: error: generic type name `P` is not mentioned in fn `create3[U]`
25 | }
26 |
27 | fn (r Db) create3<U>(u U, p []P) {
27 | fn (r Db) create3[U](u U, p []P) {
| ~~~
28 | println('Yo')
29 | }
vlib/v/checker/tests/generic_fn_decl_err.vv:31:27: error: generic type name `P` is not mentioned in fn `create4[U]`
29 | }
30 |
31 | fn (r Db) create4<U>(u U) P {
31 | fn (r Db) create4[U](u U) P {
| ^
32 | return P{}
33 | }
vlib/v/checker/tests/generic_fn_decl_err.vv:35:27: error: generic type name `P` is not mentioned in fn `create5[U]`
33 | }
34 |
35 | fn (r Db) create5<U>(u U) []P {
35 | fn (r Db) create5[U](u U) []P {
| ~~~
36 | return [P{}]
37 | }
10 changes: 5 additions & 5 deletions vlib/v/checker/tests/generic_fn_decl_err.vv
Expand Up @@ -16,22 +16,22 @@ fn main() {
r.create5(u)
}

fn (r Db) create1<U>(u U, p P) {
fn (r Db) create1[U](u U, p P) {
println('Yo')
}

fn (r Db) create2<U>(u U, p &P) {
fn (r Db) create2[U](u U, p &P) {
println('Yo')
}

fn (r Db) create3<U>(u U, p []P) {
fn (r Db) create3[U](u U, p []P) {
println('Yo')
}

fn (r Db) create4<U>(u U) P {
fn (r Db) create4[U](u U) P {
return P{}
}

fn (r Db) create5<U>(u U) []P {
fn (r Db) create5[U](u U) []P {
return [P{}]
}
4 changes: 2 additions & 2 deletions vlib/v/checker/tests/generic_interface_method_decl_err.out
@@ -1,6 +1,6 @@
vlib/v/checker/tests/generic_interface_method_decl_err.vv:2:8: error: no need to add generic type names in generic interface's method
1 | interface Expr<R> {
2 | accept<R>(v Visitor<R>) R
1 | interface Expr[R] {
2 | accept[R](v Visitor[R]) R
| ^
3 | }
4 |
6 changes: 3 additions & 3 deletions vlib/v/checker/tests/generic_interface_method_decl_err.vv
@@ -1,8 +1,8 @@
interface Expr<R> {
accept<R>(v Visitor<R>) R
interface Expr[R] {
accept[R](v Visitor[R]) R
}

interface Visitor<R> {
interface Visitor[R] {
}

fn main() {
Expand Down
20 changes: 10 additions & 10 deletions vlib/v/checker/tests/generics_fn_arguments_count_err.out
@@ -1,67 +1,67 @@
vlib/v/checker/tests/generics_fn_arguments_count_err.vv:12:18: error: expected 2 generic parameters, got 1
10 |
11 | fn main() {
12 | ret1 := get_name<int>(11, 22)
12 | ret1 := get_name[int](11, 22)
| ~~~~~
13 | println(ret1)
14 |
vlib/v/checker/tests/generics_fn_arguments_count_err.vv:15:18: error: expected 2 generic parameters, got 3
13 | println(ret1)
14 |
15 | ret2 := get_name<int, int, string>(11, 22, 'hello')
15 | ret2 := get_name[int, int, string](11, 22, 'hello')
| ~~~~~~~~~~~~~~~~~~
16 | println(ret2)
17 |
vlib/v/checker/tests/generics_fn_arguments_count_err.vv:15:45: error: expected 2 arguments, but got 3
13 | println(ret1)
14 |
15 | ret2 := get_name<int, int, string>(11, 22, 'hello')
15 | ret2 := get_name[int, int, string](11, 22, 'hello')
| ~~~~~~~
16 | println(ret2)
17 |
vlib/v/checker/tests/generics_fn_arguments_count_err.vv:19:22: error: expected 2 generic parameters, got 1
17 |
18 | foo := Foo{}
19 | ret3 := foo.get_name<int>(11, 22)
19 | ret3 := foo.get_name[int](11, 22)
| ~~~~~
20 | println(ret3)
21 |
vlib/v/checker/tests/generics_fn_arguments_count_err.vv:22:22: error: expected 2 generic parameters, got 3
20 | println(ret3)
21 |
22 | ret4 := foo.get_name<int, int, string>(11, 22, 'hello')
22 | ret4 := foo.get_name[int, int, string](11, 22, 'hello')
| ~~~~~~~~~~~~~~~~~~
23 | println(ret4)
24 | }
vlib/v/checker/tests/generics_fn_arguments_count_err.vv:22:49: error: expected 2 arguments, but got 3
20 | println(ret3)
21 |
22 | ret4 := foo.get_name<int, int, string>(11, 22, 'hello')
22 | ret4 := foo.get_name[int, int, string](11, 22, 'hello')
| ~~~~~~~
23 | println(ret4)
24 | }
vlib/v/checker/tests/generics_fn_arguments_count_err.vv:2:11: error: no known default format for type `A`
1 | fn get_name<A, B>(a A, b B) string {
1 | fn get_name[A, B](a A, b B) string {
2 | return '$a, $b'
| ^
3 | }
4 |
vlib/v/checker/tests/generics_fn_arguments_count_err.vv:2:15: error: no known default format for type `B`
1 | fn get_name<A, B>(a A, b B) string {
1 | fn get_name[A, B](a A, b B) string {
2 | return '$a, $b'
| ^
3 | }
4 |
vlib/v/checker/tests/generics_fn_arguments_count_err.vv:8:11: error: no known default format for type `A`
6 |
7 | fn (f Foo) get_name<A, B>(a A, b B) string {
7 | fn (f Foo) get_name[A, B](a A, b B) string {
8 | return '$a, $b'
| ^
9 | }
10 |
vlib/v/checker/tests/generics_fn_arguments_count_err.vv:8:15: error: no known default format for type `B`
6 |
7 | fn (f Foo) get_name<A, B>(a A, b B) string {
7 | fn (f Foo) get_name[A, B](a A, b B) string {
8 | return '$a, $b'
| ^
9 | }
Expand Down
12 changes: 6 additions & 6 deletions vlib/v/checker/tests/generics_fn_arguments_count_err.vv
@@ -1,24 +1,24 @@
fn get_name<A, B>(a A, b B) string {
fn get_name[A, B](a A, b B) string {
return '$a, $b'
}

struct Foo {}

fn (f Foo) get_name<A, B>(a A, b B) string {
fn (f Foo) get_name[A, B](a A, b B) string {
return '$a, $b'
}

fn main() {
ret1 := get_name<int>(11, 22)
ret1 := get_name[int](11, 22)
println(ret1)

ret2 := get_name<int, int, string>(11, 22, 'hello')
ret2 := get_name[int, int, string](11, 22, 'hello')
println(ret2)

foo := Foo{}
ret3 := foo.get_name<int>(11, 22)
ret3 := foo.get_name[int](11, 22)
println(ret3)

ret4 := foo.get_name<int, int, string>(11, 22, 'hello')
ret4 := foo.get_name[int, int, string](11, 22, 'hello')
println(ret4)
}
@@ -1,6 +1,6 @@
vlib/v/checker/tests/generics_inst_non_generic_struct_err.vv:5:14: error: struct `Test` is not a generic struct, cannot instantiate to the concrete types
3 |
4 | fn main() {
5 | println(Test<string>{})
5 | println(Test[string]{})
| ~~~~~~~~
6 | }
Expand Up @@ -2,5 +2,5 @@ struct Test {
}

fn main() {
println(Test<string>{})
println(Test[string]{})
}
@@ -1,5 +1,5 @@
vlib/v/checker/tests/generics_interface_declaration_err.vv:1:1: error: generic interface `Expr` declaration must specify the generic type names, e.g. Expr[T]
1 | interface Expr {
| ~~~~~~~~~~~~~~~~
2 | accept(v Visitor<R>) R
2 | accept(v Visitor[R]) R
3 | }
4 changes: 2 additions & 2 deletions vlib/v/checker/tests/generics_interface_declaration_err.vv
@@ -1,8 +1,8 @@
interface Expr {
accept(v Visitor<R>) R
accept(v Visitor[R]) R
}

interface Visitor<R> {
interface Visitor[R] {
}

fn main() {
Expand Down
@@ -1,7 +1,7 @@
vlib/v/checker/tests/generics_non_generic_fn_called_like_a_generic_one.vv:4:15: error: a non generic function called like a generic one
2 |
3 | fn main() {
4 | x := math.sin<f64>(1.0)
4 | x := math.sin[f64](1.0)
| ~~~~~
5 | println(x)
6 | }
@@ -1,6 +1,6 @@
import math

fn main() {
x := math.sin<f64>(1.0)
x := math.sin[f64](1.0)
println(x)
}
2 changes: 1 addition & 1 deletion vlib/v/checker/tests/generics_struct_field_fn_args_err.out
Expand Up @@ -11,7 +11,7 @@ vlib/v/checker/tests/generics_struct_field_fn_args_err.vv:22:20: error: expected
22 | println(fun0.call(1234, 5678))
| ~~~~~~~~~~
23 |
24 | fun1 := Fun<fn (int) int>{
24 | fun1 := Fun[fn (int) int]{
vlib/v/checker/tests/generics_struct_field_fn_args_err.vv:29:15: error: expected 1 arguments, but got 0
27 |
28 | println(fun1.call(42))
Expand Down
6 changes: 3 additions & 3 deletions vlib/v/checker/tests/generics_struct_field_fn_args_err.vv
Expand Up @@ -6,22 +6,22 @@ fn dub_int(i int) int {
return i * 2
}

struct Fun<F> {
struct Fun[F] {
mut:
call F
}

type FunZero = fn () int

fn main() {
fun0 := Fun<FunZero>{
fun0 := Fun[FunZero]{
call: get_int
}
println(fun0.call())
println(fun0.call(1234))
println(fun0.call(1234, 5678))

fun1 := Fun<fn (int) int>{
fun1 := Fun[fn (int) int]{
call: dub_int
}

Expand Down
@@ -1,14 +1,14 @@
vlib/v/checker/tests/generics_struct_init_type_parameter_err.vv:6:9: error: generic struct init type parameter `U` must be within the parameters `(A,B)` of the current generic function
4 |
5 | fn send_1<A, B>(res A, b B) string {
6 | msg := Response<U>{
5 | fn send_1[A, B](res A, b B) string {
6 | msg := Response[U]{
| ~~~~~~~~~~~~
7 | result: res
8 | }
vlib/v/checker/tests/generics_struct_init_type_parameter_err.vv:14:9: error: generic struct init expects 1 generic parameter, but got 2
12 |
13 | fn send_2<A, B>(res A, b B) string {
14 | msg := Response<A, B>{
13 | fn send_2[A, B](res A, b B) string {
14 | msg := Response[A, B]{
| ~~~~~~~~~~~~~~~
15 | result: res
16 | }
10 changes: 5 additions & 5 deletions vlib/v/checker/tests/generics_struct_init_type_parameter_err.vv
@@ -1,17 +1,17 @@
struct Response<U> {
struct Response[U] {
result U
}

fn send_1<A, B>(res A, b B) string {
msg := Response<U>{
fn send_1[A, B](res A, b B) string {
msg := Response[U]{
result: res
}
println(b)
return '$msg'
}

fn send_2<A, B>(res A, b B) string {
msg := Response<A, B>{
fn send_2[A, B](res A, b B) string {
msg := Response[A, B]{
result: res
}
println(b)
Expand Down
2 changes: 1 addition & 1 deletion vlib/v/checker/tests/vweb_routing_checks.vv
Expand Up @@ -40,5 +40,5 @@ pub fn (mut app App) index() {

fn main() {
port := 8181
vweb.run<App>(&App{}, port)
vweb.run[App](&App{}, port)
}
2 changes: 1 addition & 1 deletion vlib/v/checker/tests/vweb_tmpl_used_var.vv
Expand Up @@ -10,5 +10,5 @@ pub fn (mut app App) index() vweb.Result {
}

fn main() {
vweb.run<App>(&App{}, 8181)
vweb.run[App](&App{}, 8181)
}

0 comments on commit e30182c

Please sign in to comment.