EmmyLua / EmmyLua-LanguageServer

153 stars 28 forks source link

java.lang.StackOverflowError on code completion #15

Closed dlbd closed 4 years ago

dlbd commented 5 years ago

Steps to reproduce:

  1. Create a test.lua file with this code:
    
    local function find(a,b)
    for _,a in ipairs(a) do -- no exception if a and a are renamed to different names
    if b(a) then return a
    end
    end
    end

-- this line is not required to trigger the exception; show that this .lua file works with lua.exe print(find({ 1, 2, 3, 4 }, function (n) return n > 2 end))


2. Open the folder containing `test.lua` in VS Code
3. Move the cursor to the end of the file
4. Press Control-Space

![image](https://user-images.githubusercontent.com/1613158/64496045-7285b680-d290-11e9-9326-bf9b29e82dd5.png)

<details>
<summary>Full exception from the output window</summary>
Rgs 09, 2019 2:28:18 AM org.eclipse.lsp4j.jsonrpc.RemoteEndpoint fallbackResponseError
SEVERE: Internal error: java.lang.StackOverflowError
java.util.concurrent.CompletionException: java.lang.StackOverflowError
    at java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source)
    at java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source)
    at java.util.concurrent.CompletableFuture.uniApply(Unknown Source)
    at java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
    at java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
    at java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source)
    at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
    at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Caused by: java.lang.StackOverflowError
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:37)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)

[Error - 02:28:18] Request textDocument/completion failed.
  Message: Internal error.
  Code: -32603 
java.util.concurrent.CompletionException: java.lang.StackOverflowError
    at java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source)
    at java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source)
    at java.util.concurrent.CompletableFuture.uniApply(Unknown Source)
    at java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
    at java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
    at java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source)
    at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
    at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Caused by: java.lang.StackOverflowError
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:37)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.DeclarationsKt.resolveParamType(Declarations.kt:275)
    at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:111)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
    at com.tang.intellij.lua.ty.ExpressionsKt.createSubstitutor(Expressions.kt:115)
    at com.tang.intellij.lua.ty.ExpressionsKt.getReturnTy(Expressions.kt:148)
    at com.tang.intellij.lua.ty.ExpressionsKt.access$getReturnTy(Expressions.kt:1)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt:190)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2$1.process(Expressions.kt)
    at com.tang.intellij.lua.ty.TyFunctionKt.process(TyFunction.kt:212)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt:189)
    at com.tang.intellij.lua.ty.ExpressionsKt$infer$2.invoke(Expressions.kt)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:452)
    at com.tang.intellij.lua.ty.TyUnion$Companion$each$1.invoke(Ty.kt:424)
    at com.tang.intellij.lua.ty.TyUnion$Companion.process(Ty.kt:447)
    at com.tang.intellij.lua.ty.TyUnion$Companion.each(Ty.kt:451)
    at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:186)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
    at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
    at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:41)
    at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:27)
    at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:159)
    at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:35)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:58)
    at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:37)
    at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:63)
    at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:58)
    at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
</details>
dlbd commented 4 years ago

@tangzx Sorry to ping you, but could we have a VS Code plugin update that has this fix included? Thank you!