// adapted from Mike McGonagle's bug report class B1 { fun void f(float f[]) { <<< "in B1.f", "" >>>; } } class E1 extends B1 { fun void f(float x, float y, float z) { <<< "in E1.f", "" >>>; } } class B2 { fun void f(float x, float y, float z) { <<< "in B2.f", "" >>>; } } class E2 extends B2 { fun void f(float f[]) { <<< "in E2.f", "" >>>; } } B1 b1; B2 b2; E1 e1; E2 e2; [ 0.1, 0.3, 0.7 ] @=> float myArray[]; b1.f( myArray ); // in B1.f - correct e1.f( myArray ); // in B1.f - correct e1.f( 0.7, .553, 77 ); // in E1.f - correct b2.f( 0.7, .553, 77 ); // in B2.f - correct e2.f( 0.7, .553, 77 ); // in B2.f - correct e2.f( myArray ); // in E2.f - correct