File tree Expand file tree Collapse file tree 1 file changed +12
-3
lines changed
Sources/SourceKitLSP/Swift Expand file tree Collapse file tree 1 file changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -92,7 +92,13 @@ actor GeneratedInterfaceManager {
92
92
incrementingRefCount: Bool
93
93
) async throws -> OpenGeneratedInterfaceDocumentDetails {
94
94
func loadFromCache( ) -> OpenGeneratedInterfaceDocumentDetails ? {
95
- guard let cachedIndex = openInterfaces. firstIndex ( where: { $0. url == document } ) else {
95
+ // Cache by module name and group name, not the full document data
96
+ // This allows reuse across different buildSettingsFrom URIs
97
+ guard let cachedIndex = openInterfaces. firstIndex ( where: {
98
+ $0. url. moduleName == document. moduleName &&
99
+ $0. url. groupName == document. groupName &&
100
+ $0. url. sourcekitdDocumentName == document. sourcekitdDocumentName
101
+ } ) else {
96
102
return nil
97
103
}
98
104
if incrementingRefCount {
@@ -160,8 +166,11 @@ actor GeneratedInterfaceManager {
160
166
}
161
167
162
168
private func decrementRefCount( for document: GeneratedInterfaceDocumentURLData ) {
163
- guard let cachedIndex = openInterfaces. firstIndex ( where: { $0. url == document } ) else {
164
- logger. fault (
169
+ guard let cachedIndex = openInterfaces. firstIndex ( where: {
170
+ $0. url. moduleName == document. moduleName &&
171
+ $0. url. groupName == document. groupName &&
172
+ $0. url. sourcekitdDocumentName == document. sourcekitdDocumentName
173
+ } ) else { logger. fault (
165
174
" Generated interface document for \( document. moduleName) is not open anymore. Unbalanced retain and releases? "
166
175
)
167
176
return
You can’t perform that action at this time.
0 commit comments