Commit a1933bb3 by Tianqi Yang

test(overload): add test case overload_error2

Add test cases: - overload_error2: Overload errors
parent 58e3a4aa
class A
{
void print ()
{
Print ( "A.print\n" );
}
}
class B extends A
{
void print ()
{
Print ( "B.print\n" );
}
}
class C extends B
{
void print ()
{
Print ( "C.print\n" );
}
}
class D extends B
{
void print ()
{
Print ( "D.print\n" );
}
}
class F
{
static void f ( class A a, class A b )
{
Print ( "F: A A\n" );
}
static void f ( class A a, class B b )
{
Print ( "F: A B\n" );
}
}
class G
{
void f ( class A a, class A b )
{
Print ( "G: A A\n" );
}
void f ( class A a, class C b )
{
Print ( "G: A C\n" );
}
void f ( class A a, class B b )
{
Print ( "G: A B\n" );
}
void f ( class B a, class A b )
{
Print ( "G: B A\n" );
}
void f ( class C a, class B b )
{
Print ( "G: C B\n" );
}
}
class Main
{
static void main ()
{
class A a;
a = new A ();
class B b;
b = new B ();
class C c;
c = new C ();
class D d;
d = new D ();
F.f ( a, a );
F.f ( a, b );
F.f ( a, c );
F.f ( b, a );
F.f ( b, b );
F.f ( b, c );
F.f ( c, a );
F.f ( c, b );
F.f ( c, c );
class G g;
g = new G ();
g.f ( a, a );
g.f ( a, b );
g.f ( a, c );
g.f ( a, d );
g.f ( b, a );
g.f ( b, b );
g.f ( b, c );
g.f ( b, d );
g.f ( c, a );
g.f ( c, b );
g.f ( c, c );
g.f ( c, d );
g.f ( d, a );
g.f ( d, b );
g.f ( d, c );
g.f ( d, d );
}
}
\ No newline at end of file
*** Error at (104,5): call of overloaded f(class : B, class : B) is ambiguous, candidates are :
*** note : candidate at (58,7) : void f(class : A, class : B)
*** note : candidate at (63,7) : void f(class : B, class : A)
*** Error at (105,5): call of overloaded f(class : B, class : C) is ambiguous, candidates are :
*** note : candidate at (53,7) : void f(class : A, class : C)
*** note : candidate at (63,7) : void f(class : B, class : A)
*** Error at (106,5): call of overloaded f(class : B, class : D) is ambiguous, candidates are :
*** note : candidate at (58,7) : void f(class : A, class : B)
*** note : candidate at (63,7) : void f(class : B, class : A)
*** Error at (109,5): call of overloaded f(class : C, class : C) is ambiguous, candidates are :
*** note : candidate at (53,7) : void f(class : A, class : C)
*** note : candidate at (68,7) : void f(class : C, class : B)
*** Error at (112,5): call of overloaded f(class : D, class : B) is ambiguous, candidates are :
*** note : candidate at (58,7) : void f(class : A, class : B)
*** note : candidate at (63,7) : void f(class : B, class : A)
*** Error at (113,5): call of overloaded f(class : D, class : C) is ambiguous, candidates are :
*** note : candidate at (53,7) : void f(class : A, class : C)
*** note : candidate at (63,7) : void f(class : B, class : A)
*** Error at (114,5): call of overloaded f(class : D, class : D) is ambiguous, candidates are :
*** note : candidate at (58,7) : void f(class : A, class : B)
*** note : candidate at (63,7) : void f(class : B, class : A)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment