in src/main/kotlin/org/jetbrains/tinygoplugin/inspections/libraries/TinyGoImportInspection.kt [92:126]
override fun visitImportSpec(import: GoImportSpec) {
super.visitImportSpec(import)
val importConditions = import.isCImport || import.isBlank
val tinyGoContextConditions =
!import.project.tinyGoConfiguration().enabled || !customContextPredicate(import)
if (importConditions || tinyGoContextConditions) {
return
}
if (!checkFileLocation(
import.path,
import,
defaultInspectionMessage,
IMPORT_DEPENDENCY_INSPECTION_MESSAGE,
generateDisplayName(import)
)
) {
computedUnsupportedImports.add(import.path)
return
}
val packages = import.resolve(ResolveState.initial())
val importedPkgRefersToBadLib = packages.stream().anyMatch { pkg ->
pkg.files().stream().anyMatch {
if (it is GoFile) {
if (!GoUtil.matchedForModuleBuildTarget(it, GoUtil.module(it))) false
else !checkFileImports(
it,
import,
generateDisplayName(import)
)
} else true
}
}
if (importedPkgRefersToBadLib) computedUnsupportedImports.add(import.path)
}