@@ -128,7 +128,7 @@ abstract class AbstractIncrementalCache<ClassName>(
128
128
*
129
129
* The `srcFile` argument may be `null` (e.g., if we are processing .class files in jars where source files are not available).
130
130
*/
131
- protected fun addToClassStorage (classProtoData : ClassProtoData , srcFile : File ? ) {
131
+ protected fun addToClassStorage (classProtoData : ClassProtoData , srcFile : File ? , useCompilerMapsOnly : Boolean = false ) {
132
132
val (proto, nameResolver) = classProtoData
133
133
134
134
val supertypes = proto.supertypes(TypeTable (proto.typeTable))
@@ -143,11 +143,17 @@ abstract class AbstractIncrementalCache<ClassName>(
143
143
removedSupertypes.forEach { subtypesMap.removeValues(it, setOf (child)) }
144
144
145
145
supertypesMap[child] = parents
146
- srcFile?.let { classFqNameToSourceMap[child] = it }
147
- classAttributesMap[child] = ICClassesAttributes (ProtoBuf .Modality .SEALED == Flags .MODALITY .get(proto.flags))
146
+ if (! useCompilerMapsOnly) {
147
+ srcFile?.let { classFqNameToSourceMap[child] = it }
148
+ classAttributesMap[child] = ICClassesAttributes (ProtoBuf .Modality .SEALED == Flags .MODALITY .get(proto.flags))
149
+ }
148
150
}
149
151
150
- protected fun removeAllFromClassStorage (removedClasses : Collection <FqName >, changesCollector : ChangesCollector ) {
152
+ protected fun removeAllFromClassStorage (
153
+ removedClasses : Collection <FqName >,
154
+ changesCollector : ChangesCollector ,
155
+ useCompilerMapsOnly : Boolean = false,
156
+ ) {
151
157
if (removedClasses.isEmpty()) return
152
158
153
159
val removedFqNames = removedClasses.toSet()
@@ -179,9 +185,11 @@ abstract class AbstractIncrementalCache<ClassName>(
179
185
}
180
186
}
181
187
182
- removedFqNames.forEach {
183
- classFqNameToSourceMap.remove(it)
184
- classAttributesMap.remove(it)
188
+ if (! useCompilerMapsOnly) {
189
+ removedFqNames.forEach {
190
+ classFqNameToSourceMap.remove(it)
191
+ classAttributesMap.remove(it)
192
+ }
185
193
}
186
194
}
187
195
0 commit comments