Skip to content

Commit 576ac4c

Browse files
committed
performance (return ty)
1 parent bda60a4 commit 576ac4c

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

src/main/java/com/tang/intellij/lua/stubs/LuaFuncBodyOwnerStub.kt

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,7 @@ package com.tang.intellij.lua.stubs
1111
import com.intellij.openapi.util.Computable
1212
import com.intellij.psi.stubs.StubElement
1313
import com.tang.intellij.lua.ext.recursionGuard
14-
import com.tang.intellij.lua.psi.LuaClosureExpr
15-
import com.tang.intellij.lua.psi.LuaFuncBodyOwner
16-
import com.tang.intellij.lua.psi.LuaParamInfo
17-
import com.tang.intellij.lua.psi.LuaReturnStat
14+
import com.tang.intellij.lua.psi.*
1815
import com.tang.intellij.lua.search.SearchContext
1916
import com.tang.intellij.lua.ty.IFunSignature
2017
import com.tang.intellij.lua.ty.ITy
@@ -34,12 +31,15 @@ interface LuaFuncBodyOwnerStub<T : LuaFuncBodyOwner> : StubElement<T> {
3431
val psi = stub.psi
3532
return recursionGuard(stub, Computable {
3633
val ty = when (psi) {
37-
is LuaFuncBodyOwner,
38-
is LuaClosureExpr -> { null }
3934
is LuaReturnStat -> {
4035
psi.exprList?.guessTypeAt(context)
4136
}
42-
else -> {
37+
is LuaDoStat,
38+
is LuaWhileStat,
39+
is LuaIfStat,
40+
is LuaForAStat,
41+
is LuaForBStat,
42+
is LuaRepeatStat -> {
4343
var ret: ITy? = null
4444
for (childrenStub in stub.childrenStubs) {
4545
ret = walkStub(childrenStub, context)
@@ -48,6 +48,7 @@ interface LuaFuncBodyOwnerStub<T : LuaFuncBodyOwner> : StubElement<T> {
4848
}
4949
ret
5050
}
51+
else -> null
5152
}
5253
ty
5354
})

src/main/java/com/tang/intellij/lua/ty/Declarations.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,14 @@ private fun inferReturnTyInner(owner: LuaFuncBodyOwner, searchContext: SearchCon
9595
}
9696
}
9797

98-
override fun visitFuncBodyOwner(o: LuaFuncBodyOwner) { }
99-
100-
override fun visitClosureExpr(o: LuaClosureExpr) { }
98+
override fun visitExprStat(o: LuaExprStat) {}
99+
override fun visitLabelStat(o: LuaLabelStat) {}
100+
override fun visitAssignStat(o: LuaAssignStat) {}
101+
override fun visitGotoStat(o: LuaGotoStat) {}
102+
override fun visitClassMethodDef(o: LuaClassMethodDef) {}
103+
override fun visitFuncDef(o: LuaFuncDef) {}
104+
override fun visitLocalDef(o: LuaLocalDef) {}
105+
override fun visitLocalFuncDef(o: LuaLocalFuncDef) {}
101106
})
102107
CachedValueProvider.Result.create(type, owner)
103108
type

0 commit comments

Comments
 (0)