Skip to content

Commit 2ca88eb

Browse files
committed
Add four more tests, fix invalid (yet unused) operator and for members define the last comparator for
1 parent 299e85f commit 2ca88eb

6 files changed

Lines changed: 72 additions & 3 deletions

File tree

CodeModel/src/main/java/org/openzen/zenscript/codemodel/type/builtin/BasicTypeMembers.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -546,9 +546,9 @@ private static MemberSet getString() {
546546

547547
private static void setup(MemberSet.Builder builder, BasicTypeID type) {
548548
for (BuiltinMethodSymbol method : BuiltinMethodSymbol.values()) {
549-
/*if (method.getID().equals(COMPARE)) {
549+
if (method.getDefiningType().equals(type) && method.getID().equals(COMPARE)) {
550550
comparator(builder, method, type);
551-
} else if (method.getID().equals(CONSTRUCTOR)) {
551+
}/* else if (method.getID().equals(CONSTRUCTOR)) {
552552
builder.constructor(new MethodInstance(method));
553553
} else if (method.getDefiningType() == type) {
554554
builder.method(new MethodInstance(method));

CodeModel/src/main/java/org/openzen/zenscript/codemodel/type/builtin/BuiltinMethodSymbol.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ public enum BuiltinMethodSymbol implements MethodSymbol {
346346
USIZE_SHL(USIZE, SHL, USIZE, USIZE),
347347
USIZE_SHR(USIZE, SHR, USIZE, USIZE),
348348
USIZE_COMPARE(USIZE, COMPARE, INT, USIZE),
349-
USIZE_COMPARE_UINT(USIZE, COMPARE, INT, USIZE),
349+
USIZE_COMPARE_UINT(USIZE, COMPARE, INT, UINT),
350350
USIZE_TO_BYTE(USIZE, MethodID.caster(BYTE), Modifiers.NONE, BYTE),
351351
USIZE_TO_SBYTE(USIZE, MethodID.caster(SBYTE), Modifiers.NONE, SBYTE),
352352
USIZE_TO_SHORT(USIZE, MethodID.caster(SHORT), Modifiers.NONE, SHORT),
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#output: 3
2+
#output: 3
3+
4+
public class Collision {
5+
public static min(a as int, b as int) as int {
6+
return a < b ? a : b;
7+
}
8+
public static min(a as double, b as double) as double {
9+
return a < b ? a : b;
10+
}
11+
public static min(a as usize, b as usize) as usize {
12+
return a < b ? a : b;
13+
}
14+
}
15+
16+
println("" + Collision.min(3, 5));
17+
println("" + Collision.min(5, 3));
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#output: Hello Collision!
2+
#output: Hello World!
3+
4+
public class Collision {
5+
public this() {}
6+
7+
public print_collision() as void {
8+
println("Hello World!");
9+
}
10+
public static print_collision() as void {
11+
println("Hello Collision!");
12+
}
13+
}
14+
15+
Collision.print_collision();
16+
new Collision().print_collision();
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#output: 4
2+
3+
public class Collision {
4+
private val min as int;
5+
6+
public this(a as int) {
7+
this.min = a;
8+
}
9+
10+
public min(min as int) as int {
11+
return min < this.min ? min : this.min;
12+
}
13+
}
14+
15+
val min = new Collision(5);
16+
println("" + min.min(4));
17+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#output: int
2+
#output: 4
3+
4+
public class min {
5+
private val min as int;
6+
7+
public this(a as int) {
8+
this.min = a;
9+
}
10+
11+
public min(min as int) as int {
12+
println(typeof(this.min));
13+
return min < this.min ? min : this.min;
14+
}
15+
}
16+
17+
val min = new min(5);
18+
println("" + min.min(4));
19+

0 commit comments

Comments
 (0)