Basic USVM TS type system with type coercion#215
Conversation
There was a problem hiding this comment.
detekt found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
|
This PR indirectly introduces a bug |
| } | ||
|
|
||
| val types = primitiveTypes.toMutableList() | ||
| return when (val remainingTypes = anyTypeStream.take(n - primitiveTypes.size)) { |
Check warning
Code scanning / detekt
Braces do not comply with the specified policy Warning
| // (primitives can't be cast to ref in TypeScript type coercion) | ||
| addressSort -> { | ||
| val fpToBoolLink = mkEq(fpToBoolSort(asFp64()), asBool()) | ||
| val boolToRefLink = mkEq(asBool(), (baseExpr as UExpr<UAddressSort>).neq(mkNullRef())) |
Check warning
Code scanning / detekt
Reports multiple space usages
| @@ -0,0 +1,111 @@ | |||
| package org.usvm.machine.expr | |||
|
|
|||
| import io.ksmt.KAst | |||
Check warning
Code scanning / detekt
Detects imports in non default order
| private fun coerce( | ||
| other: UExpr<out USort>, | ||
| action: CoerceAction, | ||
| ): UExpr<out USort> = when (other) { |
Check warning
Code scanning / detekt
Braces do not comply with the specified policy
| @@ -0,0 +1,151 @@ | |||
| package org.usvm.machine.operator | |||
|
|
|||
| import io.ksmt.utils.cast | |||
Check warning
Code scanning / detekt
Detects imports in non default order
| discoverProperties( | ||
| methodIdentifier: MethodDescriptor, | ||
| vararg analysisResultMatchers: (T1, T2, T3, T4, R?) -> Boolean, | ||
| protected inline fun <reified T1 : TSObject, reified T2 : TSObject, reified T3 : TSObject, reified T4 : TSObject, reified R : TSObject> discoverProperties( |
Check warning
Code scanning / detekt
Reports lines with exceeded length Warning test
| discoverProperties( | ||
| methodIdentifier: MethodDescriptor, | ||
| vararg analysisResultMatchers: (T1, T2, T3, T4, R?) -> Boolean, | ||
| protected inline fun <reified T1 : TSObject, reified T2 : TSObject, reified T3 : TSObject, reified T4 : TSObject, reified R : TSObject> discoverProperties( |
Check warning
Code scanning / detekt
Line detected, which is longer than the defined maximum line length in the code style. Warning test
| only KClass<TSObject> is available to match different objects. | ||
| However, this method is also used in parent TestRunner class | ||
| and passes here TSObject instances. So this check on current level is required. | ||
| */ |
Check warning
Code scanning / detekt
Detect the alignment of the initial star in a block comment.
| @@ -1,5 +1,6 @@ | |||
| package org.usvm.util | |||
|
|
|||
| import io.ksmt.utils.cast | |||
Check warning
Code scanning / detekt
Detects imports in non default order
| ctx: TSContext, | ||
| model: UModelBase<EtsType>, | ||
| ): List<TSObject> = with(ctx) { | ||
| params.map { param -> |
Check warning
Code scanning / detekt
Reports multiple space usages
1eed307 to
b58e886
Compare
556fa95 to
703b36c
Compare
No description provided.