translator: add operators ==, !=, ===, !== for classes
This commit is contained in:
@@ -746,11 +746,14 @@ abstract class BlockCodegen(val state: TranslationState, val variableManager: Va
|
||||
KtTokens.LTEQ -> firstOp.type!!.operatorLeq(firstNativeOp, secondNativeOp)
|
||||
KtTokens.GTEQ -> firstOp.type!!.operatorGeq(firstNativeOp, secondNativeOp)
|
||||
KtTokens.EQEQ ->
|
||||
if (firstOp.type is LLVMReferenceType)
|
||||
if ((firstOp.type is LLVMReferenceType) && (secondOp.type !is LLVMReferenceType))
|
||||
firstOp.type!!.operatorEq(firstNativeOp, secondOp)
|
||||
else
|
||||
firstOp.type!!.operatorEq(firstNativeOp, secondNativeOp)
|
||||
KtTokens.EQEQEQ ->
|
||||
firstOp.type!!.operatorEq(firstNativeOp, secondNativeOp)
|
||||
KtTokens.EXCLEQ -> firstOp.type!!.operatorNeq(firstNativeOp, secondNativeOp)
|
||||
KtTokens.EXCLEQEQEQ -> firstOp.type!!.operatorNeq(firstNativeOp, secondNativeOp)
|
||||
KtTokens.EQ -> {
|
||||
if (secondOp.type is LLVMNullType) {
|
||||
val result = codeBuilder.getNewVariable(firstOp.type!!, firstOp.pointer)
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
referential_equality_1_EQEQ_true() == 1
|
||||
referential_equality_1_EQEQ_false() == 0
|
||||
referential_equality_1_EQEQEQ_true() == 1
|
||||
referential_equality_1_EQEQEQ_false() == 0
|
||||
referential_equality_1_EXCLEQEQ_true() == 1
|
||||
referential_equality_1_EXCLEQEQ_false() == 0
|
||||
referential_equality_1_EXCLEQEQEQ_true() == 1
|
||||
referential_equality_1_EXCLEQEQEQ_false() == 0
|
||||
@@ -0,0 +1,54 @@
|
||||
class referential_equality_1
|
||||
|
||||
fun referential_equality_1_EQEQ_true(): Int {
|
||||
val instance = referential_equality_1()
|
||||
var instance2 = referential_equality_1()
|
||||
instance2 = instance
|
||||
//problem with boolean in auto generated functions in clang
|
||||
return if (instance == instance2) 1 else 0
|
||||
}
|
||||
|
||||
fun referential_equality_1_EQEQ_false(): Int {
|
||||
val instance = referential_equality_1()
|
||||
val instance2 = referential_equality_1()
|
||||
return if (instance == instance2) 1 else 0
|
||||
}
|
||||
|
||||
fun referential_equality_1_EQEQEQ_true(): Int {
|
||||
val instance = referential_equality_1()
|
||||
var instance2 = referential_equality_1()
|
||||
instance2 = instance
|
||||
return if (instance === instance2) 1 else 0
|
||||
}
|
||||
|
||||
fun referential_equality_1_EQEQEQ_false(): Int {
|
||||
val instance = referential_equality_1()
|
||||
val instance2 = referential_equality_1()
|
||||
return if (instance === instance2) 1 else 0
|
||||
}
|
||||
|
||||
fun referential_equality_1_EXCLEQEQ_false(): Int {
|
||||
val instance = referential_equality_1()
|
||||
var instance2 = referential_equality_1()
|
||||
instance2 = instance
|
||||
return if (instance != instance2) 1 else 0
|
||||
}
|
||||
|
||||
fun referential_equality_1_EXCLEQEQ_true(): Int {
|
||||
val instance = referential_equality_1()
|
||||
val instance2 = referential_equality_1()
|
||||
return if (instance != instance2) 1 else 0
|
||||
}
|
||||
|
||||
fun referential_equality_1_EXCLEQEQEQ_false(): Int {
|
||||
val instance = referential_equality_1()
|
||||
var instance2 = referential_equality_1()
|
||||
instance2 = instance
|
||||
return if (instance !== instance2) 1 else 0
|
||||
}
|
||||
|
||||
fun referential_equality_1_EXCLEQEQEQ_true(): Int {
|
||||
val instance = referential_equality_1()
|
||||
val instance2 = referential_equality_1()
|
||||
return if (instance !== instance2) 1 else 0
|
||||
}
|
||||
Reference in New Issue
Block a user