@@ -10,6 +10,7 @@ import com.whatsapp.eqwalizer.ast.Exprs.Expr
10
10
import com .whatsapp .eqwalizer .ast .Forms .OverloadedFunSpec
11
11
import com .whatsapp .eqwalizer .ast .RemoteId
12
12
import com .whatsapp .eqwalizer .ast .Types .{DynamicType , FunType , NoneType , Type }
13
+ import com .whatsapp .eqwalizer .tc .TcDiagnostics .NoSpecialType
13
14
14
15
class ElabApplyOverloaded (pipelineContext : PipelineContext ) {
15
16
private lazy val check = pipelineCtx.check
@@ -18,6 +19,7 @@ class ElabApplyOverloaded(pipelineContext: PipelineContext) {
18
19
private lazy val subtype = pipelineContext.subtype
19
20
private val elabApply = pipelineContext.elabApply
20
21
private val narrow = pipelineContext.narrow
22
+ private lazy val diagnosticsInfo = pipelineContext.diagnosticsInfo
21
23
private implicit val pipelineCtx : PipelineContext = pipelineContext
22
24
23
25
def elabOverloaded (expr : Expr , remoteId : RemoteId , args : List [Expr ], env : Env ): (Type , Env ) = {
@@ -28,6 +30,8 @@ class ElabApplyOverloaded(pipelineContext: PipelineContext) {
28
30
val resTy = elabApply.elabApply(check.freshen(ft), args, argTys, env1)
29
31
(resTy, env1)
30
32
case _ =>
33
+ if (pipelineCtx.overloadedSpecDynamicResult)
34
+ diagnosticsInfo.add(NoSpecialType (expr.pos, expr, argTys))
31
35
(DynamicType , env1)
32
36
}
33
37
}
0 commit comments