in src/main/kotlin/com/pestphp/pest/features/datasets/InvalidDatasetReferenceInspection.kt [19:50]
override fun visitPhpFile(file: PhpFile) {
val localDatasets = file.getDatasets()
.mapNotNull { it.getPestDatasetName() }
// Get all shared datasets
val fileBasedIndex = FileBasedIndex.getInstance()
val sharedDatasets = fileBasedIndex.getAllKeys(key, file.project)
.map {
fileBasedIndex.getValues(
key,
it,
GlobalSearchScope.projectScope(file.project)
)
}
.flatten()
.flatten()
file.getPestTests()
// Has to be a method reference, as else there is no dataset
.asSequence()
.filterIsInstance<MethodReferenceImpl>()
.filter { it.name == "with" }
.mapNotNull { it.parameters.getOrNull(0) }
.filterIsInstance<StringLiteralExpression>()
.filter { it.contents !in localDatasets && it.contents !in sharedDatasets }
.toList()
.forEach {
declareProblemType(
holder,
it
)
}
}