1617a3babSopenharmony_ci#version 400 core 2617a3babSopenharmony_ci 3617a3babSopenharmony_ciin double d; // ERROR, no doubles 4617a3babSopenharmony_ciin dvec3 d3; // ERROR, no doubles 5617a3babSopenharmony_ciin dmat4 dm4; // ERROR, no doubles 6617a3babSopenharmony_ci 7617a3babSopenharmony_ci// function selection under type conversion 8617a3babSopenharmony_civoid foo1(double a, uint b) {} 9617a3babSopenharmony_civoid foo1(double a, int b) {} 10617a3babSopenharmony_civoid foo1(double a, float b) {} 11617a3babSopenharmony_civoid foo1(double a, double b){} 12617a3babSopenharmony_ci 13617a3babSopenharmony_civoid foo2(double a, float b) {} 14617a3babSopenharmony_civoid foo2(double a, double b){} 15617a3babSopenharmony_ci 16617a3babSopenharmony_civoid foo3(double a, float b) {} 17617a3babSopenharmony_civoid foo3(float a, double b) {} 18617a3babSopenharmony_ci 19617a3babSopenharmony_civoid ftd( int, float, double) {} 20617a3babSopenharmony_civoid ftd( uint, float, double) {} 21617a3babSopenharmony_civoid ftd(float, double, double) {} 22617a3babSopenharmony_ci 23617a3babSopenharmony_civoid main() 24617a3babSopenharmony_ci{ 25617a3babSopenharmony_ci double d; 26617a3babSopenharmony_ci uint u; 27617a3babSopenharmony_ci int i; 28617a3babSopenharmony_ci float f; 29617a3babSopenharmony_ci 30617a3babSopenharmony_ci foo1(d, d); 31617a3babSopenharmony_ci foo1(d, u); 32617a3babSopenharmony_ci foo1(d, i); 33617a3babSopenharmony_ci foo1(d, f); 34617a3babSopenharmony_ci 35617a3babSopenharmony_ci foo1(f, d); 36617a3babSopenharmony_ci foo1(f, u); 37617a3babSopenharmony_ci foo1(f, i); 38617a3babSopenharmony_ci foo1(f, f); 39617a3babSopenharmony_ci 40617a3babSopenharmony_ci foo1(u, d); 41617a3babSopenharmony_ci foo1(u, u); 42617a3babSopenharmony_ci foo1(u, i); 43617a3babSopenharmony_ci foo1(u, f); 44617a3babSopenharmony_ci 45617a3babSopenharmony_ci foo1(i, d); 46617a3babSopenharmony_ci foo1(i, u); 47617a3babSopenharmony_ci foo1(i, i); 48617a3babSopenharmony_ci foo1(i, f); 49617a3babSopenharmony_ci 50617a3babSopenharmony_ci foo2(d, d); 51617a3babSopenharmony_ci foo2(d, u); 52617a3babSopenharmony_ci foo2(d, i); 53617a3babSopenharmony_ci foo2(d, f); 54617a3babSopenharmony_ci 55617a3babSopenharmony_ci foo2(f, d); 56617a3babSopenharmony_ci foo2(f, u); 57617a3babSopenharmony_ci foo2(f, i); 58617a3babSopenharmony_ci foo2(f, f); 59617a3babSopenharmony_ci 60617a3babSopenharmony_ci foo2(u, d); 61617a3babSopenharmony_ci foo2(u, u); 62617a3babSopenharmony_ci foo2(u, i); 63617a3babSopenharmony_ci foo2(u, f); 64617a3babSopenharmony_ci 65617a3babSopenharmony_ci foo2(i, d); 66617a3babSopenharmony_ci foo2(i, u); 67617a3babSopenharmony_ci foo2(i, i); 68617a3babSopenharmony_ci foo2(i, f); 69617a3babSopenharmony_ci 70617a3babSopenharmony_ci foo3(d, d); // ERROR, no match 71617a3babSopenharmony_ci foo3(d, u); 72617a3babSopenharmony_ci foo3(d, i); 73617a3babSopenharmony_ci foo3(d, f); 74617a3babSopenharmony_ci 75617a3babSopenharmony_ci foo3(f, d); 76617a3babSopenharmony_ci foo3(f, u); // ERROR, ambiguous 77617a3babSopenharmony_ci foo3(f, i); // ERROR, ambiguous 78617a3babSopenharmony_ci foo3(f, f); // ERROR, ambiguous 79617a3babSopenharmony_ci 80617a3babSopenharmony_ci foo3(u, d); 81617a3babSopenharmony_ci foo3(u, u); // ERROR, ambiguous 82617a3babSopenharmony_ci foo3(u, i); // ERROR, ambiguous 83617a3babSopenharmony_ci foo3(u, f); // ERROR, ambiguous 84617a3babSopenharmony_ci 85617a3babSopenharmony_ci foo3(i, d); 86617a3babSopenharmony_ci foo3(i, u); // ERROR, ambiguous 87617a3babSopenharmony_ci foo3(i, i); // ERROR, ambiguous 88617a3babSopenharmony_ci foo3(i, f); // ERROR, ambiguous 89617a3babSopenharmony_ci 90617a3babSopenharmony_ci ftd(i, f, f); 91617a3babSopenharmony_ci ftd(u, f, f); 92617a3babSopenharmony_ci} 93617a3babSopenharmony_ci 94617a3babSopenharmony_civoid itf(int, float, int); 95617a3babSopenharmony_civoid itf(int, double, int); 96617a3babSopenharmony_ci 97617a3babSopenharmony_civoid tf() 98617a3babSopenharmony_ci{ 99617a3babSopenharmony_ci double d; 100617a3babSopenharmony_ci uint u; 101617a3babSopenharmony_ci int i; 102617a3babSopenharmony_ci float f; 103617a3babSopenharmony_ci 104617a3babSopenharmony_ci itf(i, i, i); 105617a3babSopenharmony_ci itf(i, u, i); 106617a3babSopenharmony_ci} 107