// MODULE: library
// MODULE_KIND: LibraryBinary
// FILE: library.kt

// MODULE: sourceModule(library)
// MODULE_KIND: Source
// FILE: context.kt
fun test() {
    <caret_context>Unit
}

val a: Int = 0

// MODULE: fragment1.kt
// MODULE_KIND: CodeFragment
// CONTEXT_MODULE: sourceModule
// WILDCARD_MODIFICATION_EVENT

// FILE: fragment1.kt
// CODE_FRAGMENT_KIND: BLOCK
fun bar() {
    val b: Int = 5
    <caret_context>Unit
}

// MODULE: fragment2.kt
// MODULE_KIND: CodeFragment
// CONTEXT_MODULE: fragment1.kt

// FILE: fragment2.kt
// CODE_FRAGMENT_KIND: BLOCK
fun baz() {
    val c = a + b
    <caret_context>Unit
}

// MODULE: fragment3.kt
// MODULE_KIND: CodeFragment
// CONTEXT_MODULE: fragment2.kt

// FILE: fragment3.kt
// CODE_FRAGMENT_KIND: EXPRESSION
c <caret>+ 5
