(result: ResolvedRef | null, ref: UnresolvedRef)
| 2404 | } |
| 2405 | |
| 2406 | private gateLanguage(result: ResolvedRef | null, ref: UnresolvedRef): ResolvedRef | null { |
| 2407 | if (!result) return result; |
| 2408 | const tgt = this.getLanguageFromNodeId(result.targetNodeId); |
| 2409 | if (!tgt || !ref.language) return result; |
| 2410 | if ((ref.referenceKind === 'references' || ref.referenceKind === 'function_ref') && !sameLanguageFamily(tgt, ref.language)) return null; |
| 2411 | if (ref.referenceKind === 'imports' && crossesKnownFamily(tgt, ref.language)) return null; |
| 2412 | return result; |
| 2413 | } |
| 2414 | |
| 2415 | /** |
| 2416 | * Drop a FRAMEWORK-strategy resolution that crosses two *known* language |
no test coverage detected