struct NestedGeneric {
}

struct Context {
}

struct App {
mut:
	context Context
}

fn (ng NestedGeneric) nested_test[T](mut app T) {
	app.context = Context{}
}

fn method_test[T](mut app T) int {
	ng := NestedGeneric{}
	ng.nested_test[T](mut app)
	return 22
}

fn test_generics_with_generics_fn() {
	mut app := App{}
	ret := method_test(mut app)
	println('result = ${ret}')
	assert ret == 22
}
