@@ -72,6 +72,8 @@ class ExprTypeAnnotator(
7272 private val valueAnnotator : ValueTypeAnnotator ,
7373) : EtsExpr.Visitor<EtsExpr> {
7474
75+ private fun annotate (local : EtsLocal ) = valueAnnotator.visit(local)
76+
7577 private fun annotate (value : EtsValue ) = value.accept(valueAnnotator)
7678
7779 private fun annotate (expr : EtsExpr ) = expr.accept(this )
@@ -267,8 +269,8 @@ class ExprTypeAnnotator(
267269 )
268270
269271 override fun visit (expr : EtsInstanceCallExpr ): EtsExpr {
270- val baseInferred = annotate(expr.instance) as EtsLocal // safe cast
271- val argsInferred = expr.args.map { annotate(it) as EtsLocal } // safe cast
272+ val baseInferred = annotate(expr.instance)
273+ val argsInferred = expr.args.map { annotate(it) }
272274 val methodInferred = when (val baseType = baseInferred.type) {
273275 is EtsClassType -> {
274276 val etsClass = scene.projectAndSdkClasses.find { it.signature == baseType.signature }
@@ -284,13 +286,13 @@ class ExprTypeAnnotator(
284286 }
285287
286288 override fun visit (expr : EtsStaticCallExpr ): EtsExpr {
287- val argsInferred = expr.args.map { annotate(it) as EtsLocal } // safe cast
289+ val argsInferred = expr.args.map { annotate(it) }
288290 return expr.copy(args = argsInferred)
289291 }
290292
291293 override fun visit (expr : EtsPtrCallExpr ): EtsExpr {
292- val ptrInferred = annotate(expr.ptr) as EtsLocal // safe cast
293- val argsInferred = expr.args.map { annotate(it) as EtsLocal } // safe cast
294+ val ptrInferred = annotate(expr.ptr)
295+ val argsInferred = expr.args.map { annotate(it) }
294296 return expr.copy(ptr = ptrInferred, args = argsInferred)
295297 }
296298}
0 commit comments