Implement modificationTracker for CompositeDiagnostics
#KT-5981 Fixed
This commit is contained in:
@@ -21,6 +21,7 @@ import org.jetbrains.jet.util.slicedmap.WritableSlice
|
||||
import com.google.common.collect.ImmutableMap
|
||||
import org.jetbrains.jet.lang.diagnostics.Diagnostic
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.openapi.util.ModificationTracker
|
||||
|
||||
public class CompositeBindingContext private (
|
||||
private val delegates: List<BindingContext>
|
||||
@@ -57,9 +58,14 @@ public class CompositeBindingContext private (
|
||||
private class CompositeDiagnostics(
|
||||
private val delegates: List<Diagnostics>
|
||||
) : Diagnostics {
|
||||
|
||||
override fun iterator(): Iterator<Diagnostic> {
|
||||
val emptyStream = listOf<Diagnostic>().stream()
|
||||
return delegates.fold(emptyStream, { r, t -> r + t.stream()}).iterator()
|
||||
return delegates.fold(emptyStream, { r, t -> r + t.stream() }).iterator()
|
||||
}
|
||||
|
||||
override val modificationTracker = object : ModificationTracker {
|
||||
override fun getModificationCount() = delegates.fold(0L, { r, t -> r + t.modificationTracker.getModificationCount() })
|
||||
}
|
||||
|
||||
override fun all(): Collection<Diagnostic> {
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.intellij.openapi.util.ModificationTracker
|
||||
|
||||
public trait Diagnostics : Iterable<Diagnostic> {
|
||||
//should not be called on readonly views
|
||||
//any Diagnostics object returned by BindingContext#getDiagnostics() should implement this property
|
||||
public val modificationTracker: ModificationTracker
|
||||
get() = throw IllegalStateException("Trying to obtain modification tracker for Diagnostics object of class $javaClass")
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package simple
|
||||
|
||||
// test more than one file for package in JetPositionManager:prepareTypeMapper
|
||||
fun foo() {
|
||||
}
|
||||
Reference in New Issue
Block a user