File: overload.bsh

package info (click to toggle)
bsh 2.0b4-20
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 4,224 kB
  • sloc: java: 23,431; xml: 4,500; sh: 139; makefile: 24
file content (55 lines) | stat: -rw-r--r-- 883 bytes parent folder | download | duplicates (10)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/java bsh.Interpreter

source("TestHarness.bsh");

// foo can never be reached because foo( Object ) is more specific
// primitives are boxed for it.
foo( a ) { 
	return 1;
}
foo( a, b ) { 
	return 2;
}
foo( String a ) { 
	return 3;
}
foo( Object o ) {
	return 4;
}
foo( Object o, String o2 ) {
	return 5;
}
foo( String o, String o2 ) {
	return 6;
}
foo() {
	return 7;
}

assert( foo("qbert") == 3 );
assert( foo( new Object() ) == 4 );
assert( foo( "foo", "bar" ) == 6 );
assert( foo()==7 );

print (foo(99));
assert( foo(99) == 4 ); // int boxed to Object

assert( foo(99, 99) == 2 );

bar( a ) { return 1; }
bar( Date d ) { return 2; }

assert( bar("qbert") == 1 );
assert( bar( new Object() ) == 1 );
assert( bar(99) == 1 );

bar( float f ) { return 2; }

assert( bar(99) == 2 );

bar( int i ) { return 3; }

assert( bar(99) == 3 );
assert( bar(99.0f) == 2 );

complete();