Skip to content

Commit 679a2c3

Browse files
committed
register same / notsame / hashcode on the Object type
1 parent e7f56db commit 679a2c3

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

JavaShared/src/main/java/org/openzen/zenscript/javashared/types/ObjectTypeSymbol.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
package org.openzen.zenscript.javashared.types;
22

33
import org.openzen.zencode.shared.CodePosition;
4+
import org.openzen.zenscript.codemodel.FunctionHeader;
45
import org.openzen.zenscript.codemodel.Modifiers;
56
import org.openzen.zenscript.codemodel.compilation.ResolvingType;
67
import org.openzen.zenscript.codemodel.expression.Expression;
78
import org.openzen.zenscript.codemodel.generic.TypeParameter;
89
import org.openzen.zenscript.codemodel.identifiers.ExpansionSymbol;
910
import org.openzen.zenscript.codemodel.identifiers.ModuleSymbol;
1011
import org.openzen.zenscript.codemodel.identifiers.TypeSymbol;
12+
import org.openzen.zenscript.codemodel.identifiers.instances.MethodInstance;
13+
import org.openzen.zenscript.codemodel.type.BasicTypeID;
1114
import org.openzen.zenscript.codemodel.type.DefinitionTypeID;
1215
import org.openzen.zenscript.codemodel.type.TypeID;
16+
import org.openzen.zenscript.codemodel.type.builtin.BuiltinMethodSymbol;
1317
import org.openzen.zenscript.codemodel.type.member.MemberSet;
1418
import org.openzen.zenscript.javashared.expressions.JavaObjectCastExpression;
1519

@@ -44,7 +48,12 @@ public String getName() {
4448

4549
@Override
4650
public ResolvingType resolve(TypeID[] typeArguments) {
47-
MemberSet.Builder members = MemberSet.create(new DefinitionTypeID(this, typeArguments, null));
51+
DefinitionTypeID type = new DefinitionTypeID(this, typeArguments, null);
52+
MemberSet.Builder members = MemberSet.create(type);
53+
members.method(new MethodInstance(BuiltinMethodSymbol.OBJECT_SAME, new FunctionHeader(BasicTypeID.BOOL, type), type));
54+
members.method(new MethodInstance(BuiltinMethodSymbol.OBJECT_NOTSAME, new FunctionHeader(BasicTypeID.BOOL, type), type));
55+
members.method(new MethodInstance(BuiltinMethodSymbol.OBJECT_HASHCODE, new FunctionHeader(BasicTypeID.UINT), type));
56+
4857
return members.build();
4958
}
5059

0 commit comments

Comments
 (0)