1 // PERMUTE_ARGS:
2 
Appender()3 struct Appender()
4 {
5     bool canExtend = false;
6 }
7 
CustomFloat()8 struct CustomFloat()
9 {
10     union ToBinary
11     {
12         CustomFloat!() get;
13     }
14 
15     void opAssign(F)(F input)
16         if (__traits(compiles, cast(real)input))
17     {
18     }
19 
20     real get()()
21     {
22         Appender!() app;
23         assert(false);
24     }
25 
26     T opCast(T)() { return get!(); }
27 
28     alias g = get!();
29 }
30 
f()31 void f()
32 {
33     alias FPTypes = CustomFloat!();
34 }
35