Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
硅谷海盗
kotlin
提交
52a42235
K
kotlin
项目概览
硅谷海盗
/
kotlin
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kotlin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
52a42235
编写于
6月 05, 2020
作者:
I
Ilya Kirillov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
FIR IDE: always invalidate PSI -> FIR caches on any change
上级
c3f547ec
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
7 addition
and
7 deletion
+7
-7
idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirIdeResolveStateService.kt
...otlin/idea/fir/low/level/api/FirIdeResolveStateService.kt
+7
-7
未找到文件。
idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirIdeResolveStateService.kt
浏览文件 @
52a42235
...
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.idea.fir.low.level.api
...
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.idea.fir.low.level.api
import
com.intellij.openapi.components.ServiceManager
import
com.intellij.openapi.components.ServiceManager
import
com.intellij.openapi.project.Project
import
com.intellij.openapi.project.Project
import
com.intellij.openapi.util.ModificationTracker
import
com.intellij.openapi.util.ModificationTracker
import
org.jetbrains.kotlin.analyzer.TrackableModuleInfo
import
org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
import
org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
import
org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
import
org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
...
@@ -40,24 +39,25 @@ internal class FirIdeResolveStateServiceImpl(val project: Project) : FirIdeResol
...
@@ -40,24 +39,25 @@ internal class FirIdeResolveStateServiceImpl(val project: Project) : FirIdeResol
return
FirModuleResolveStateImpl
(
provider
)
return
FirModuleResolveStateImpl
(
provider
)
}
}
private
fun
createModuleData
(
moduleInfo
:
IdeaModuleInfo
):
FirModuleData
{
private
fun
createModuleData
():
FirModuleData
{
val
state
=
createResolveState
()
val
state
=
createResolveState
()
val
modificationTracker
=
(
moduleInfo
as
?
TrackableModuleInfo
)
?.
createModificationTracker
()
?:
fallbackModificationTracker
// We want to invalidate cache on every PSI change for now
return
FirModuleData
(
state
,
modificationTracker
)
// This is needed for working with high level API until the proper caching is implemented
return
FirModuleData
(
state
,
fallbackModificationTracker
)
}
}
// TODO: multi thread protection
// TODO: multi thread protection
override
fun
getResolveState
(
moduleInfo
:
IdeaModuleInfo
):
FirModuleResolveState
{
override
fun
getResolveState
(
moduleInfo
:
IdeaModuleInfo
):
FirModuleResolveState
{
var
moduleData
=
stateCache
.
getOrPut
(
moduleInfo
)
{
var
moduleData
=
stateCache
.
getOrPut
(
moduleInfo
)
{
createModuleData
(
moduleInfo
)
createModuleData
()
}
}
if
(
moduleData
.
isOutOfDate
())
{
if
(
moduleData
.
isOutOfDate
())
{
moduleData
=
createModuleData
(
moduleInfo
)
moduleData
=
createModuleData
()
stateCache
[
moduleInfo
]
=
moduleData
stateCache
[
moduleInfo
]
=
moduleData
}
}
return
moduleData
.
state
return
moduleData
.
state
}
}
override
val
fallbackModificationTracker
:
ModificationTracker
?
=
override
val
fallbackModificationTracker
:
ModificationTracker
?
=
org
.
jetbrains
.
kotlin
.
analyzer
.
KotlinModificationTrackerService
.
getInstance
(
project
).
outOfBlockM
odificationTracker
org
.
jetbrains
.
kotlin
.
analyzer
.
KotlinModificationTrackerService
.
getInstance
(
project
).
m
odificationTracker
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录