diff --git a/translator/.idea/modules/translator_test.iml b/translator/.idea/modules/translator_test.iml
index a13aea70b5f..55d07f067ff 100644
--- a/translator/.idea/modules/translator_test.iml
+++ b/translator/.idea/modules/translator_test.iml
@@ -10,7 +10,6 @@
-
diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt b/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt
index 5c2822cc2ab..06c7defc39b 100644
--- a/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt
+++ b/translator/src/main/kotlin/org/kotlinnative/translator/BlockCodegen.kt
@@ -529,7 +529,7 @@ abstract class BlockCodegen(val state: TranslationState, val variableManager: Va
private fun evaluatePrefixExpression(expr: KtPrefixExpression, scopeDepth: Int): LLVMSingleValue? {
val operator = expr.operationToken
val left = evaluateExpression(expr.baseExpression, scopeDepth) ?: throw UnsupportedOperationException("Wrong binary exception")
- return executePrefixExpression(operator, expr.operationReference, left as LLVMSingleValue)
+ return executePrefixExpression(operator, expr.operationReference, left)
}
private fun executePostfixExpression(operator: IElementType?, operationReference: KtSimpleNameExpression, left: LLVMVariable): LLVMSingleValue?
diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMBooleanType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMBooleanType.kt
index cdbe57341be..260dd2c8390 100644
--- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMBooleanType.kt
+++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMBooleanType.kt
@@ -1,7 +1,6 @@
package org.kotlinnative.translator.llvm.types
import org.kotlinnative.translator.llvm.LLVMExpression
-import org.kotlinnative.translator.llvm.LLVMNode
import org.kotlinnative.translator.llvm.LLVMSingleValue
@@ -64,4 +63,10 @@ class LLVMBooleanType() : LLVMType() {
override fun isPrimitive() = true
override fun toString() = "i1"
+ override fun hashCode(): Int{
+ var result = align
+ result = 31 * result + size
+ result = 31 * result + defaultValue.hashCode()
+ return result
+ }
}
\ No newline at end of file
diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMByteType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMByteType.kt
index 6367e6552bb..30dfd19a74b 100644
--- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMByteType.kt
+++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMByteType.kt
@@ -33,4 +33,10 @@ class LLVMByteType() : LLVMType() {
override fun toString(): String = "i8"
override val defaultValue = "0"
override fun isPrimitive() = true
+ override fun hashCode(): Int{
+ var result = align
+ result = 31 * result + size
+ result = 31 * result + defaultValue.hashCode()
+ return result
+ }
}
diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMCharType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMCharType.kt
index e8de3c13376..9bedb3664a6 100644
--- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMCharType.kt
+++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMCharType.kt
@@ -33,4 +33,10 @@ class LLVMCharType() : LLVMType() {
override fun toString(): String = "i8"
override val defaultValue = "0"
override fun isPrimitive() = true
+ override fun hashCode(): Int{
+ var result = align
+ result = 31 * result + size
+ result = 31 * result + defaultValue.hashCode()
+ return result
+ }
}
diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMDoubleType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMDoubleType.kt
index 80dad005695..3b5673370d1 100644
--- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMDoubleType.kt
+++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMDoubleType.kt
@@ -29,4 +29,10 @@ class LLVMDoubleType() : LLVMType() {
override fun toString() = "double"
override val defaultValue = "0.0"
override fun isPrimitive() = true
+ override fun hashCode(): Int{
+ var result = align
+ result = 31 * result + size
+ result = 31 * result + defaultValue.hashCode()
+ return result
+ }
}
\ No newline at end of file
diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMFloatType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMFloatType.kt
index be2f2e4fe28..356af58a612 100644
--- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMFloatType.kt
+++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMFloatType.kt
@@ -29,4 +29,10 @@ class LLVMFloatType() : LLVMType() {
override fun toString() = "float"
override val defaultValue = "0.0"
override fun isPrimitive() = true
+ override fun hashCode(): Int{
+ var result = align
+ result = 31 * result + size
+ result = 31 * result + defaultValue.hashCode()
+ return result
+ }
}
\ No newline at end of file
diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMIntType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMIntType.kt
index e48bb3700e1..66265d2f6fc 100644
--- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMIntType.kt
+++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMIntType.kt
@@ -3,7 +3,6 @@ package org.kotlinnative.translator.llvm.types
import org.kotlinnative.translator.exceptions.UnimplementedException
import org.kotlinnative.translator.llvm.LLVMExpression
import org.kotlinnative.translator.llvm.LLVMSingleValue
-import org.kotlinnative.translator.llvm.LLVMVariable
class LLVMIntType() : LLVMType() {
@@ -82,4 +81,10 @@ class LLVMIntType() : LLVMType() {
override fun toString() = "i32"
override fun isPrimitive() = true
+ override fun hashCode(): Int{
+ var result = align
+ result = 31 * result + size
+ result = 31 * result + defaultValue.hashCode()
+ return result
+ }
}
\ No newline at end of file
diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMLongType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMLongType.kt
index 2a8bb44230e..665bc606e66 100644
--- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMLongType.kt
+++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMLongType.kt
@@ -76,4 +76,10 @@ class LLVMLongType() : LLVMType() {
override fun mangle() = "Long"
override fun toString() = "i64"
override fun isPrimitive() = true
+ override fun hashCode(): Int{
+ var result = align
+ result = 31 * result + size
+ result = 31 * result + defaultValue.hashCode()
+ return result
+ }
}
\ No newline at end of file
diff --git a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMShortType.kt b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMShortType.kt
index be44b29a28f..1520439f2dc 100644
--- a/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMShortType.kt
+++ b/translator/src/main/kotlin/org/kotlinnative/translator/llvm/types/LLVMShortType.kt
@@ -33,4 +33,10 @@ class LLVMShortType() : LLVMType() {
override fun mangle() = "Short"
override fun toString(): String = "i16"
override fun isPrimitive() = true
+ override fun hashCode(): Int{
+ var result = size
+ result = 31 * result + align
+ result = 31 * result + defaultValue.hashCode()
+ return result
+ }
}
diff --git a/translator/src/test/kotlin/tests/kotlin/reassigment_0.kt b/translator/src/test/kotlin/tests/kotlin/reassigment_0.kt
index 0f0547a8490..d5becc81789 100644
--- a/translator/src/test/kotlin/tests/kotlin/reassigment_0.kt
+++ b/translator/src/test/kotlin/tests/kotlin/reassigment_0.kt
@@ -1,4 +1,4 @@
fun reassigment_0(x: Int): Int {
- var b = x + 1
+ val b = x + 1
return b
}
\ No newline at end of file