blob: b1868175ff6c01c976690ebecfe95cbbb2f9eed6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
// generic-static-method.slang
// Confirm that the compiler can handle a generic
// `static` method declaration and call.
//TEST:SIMPLE:
interface IFrobnicator
{
float frobnicate(float value);
}
struct Doubler : IFrobnicator
{
float frobnicate(float value) { return 2.0f * value; }
}
struct FrobnicateHelpers
{
static float doubleFrobnicate<F : IFrobnicator>(F f, float value)
{
return f.frobnicate(f.frobnicate(value));
}
}
float test(float value)
{
Doubler d;
return FrobnicateHelpers.doubleFrobnicate(d, value);
}
|