override fun check()

in src/main/kotlin/io/bazel/kotlin/plugin/jdeps/JdepsGenExtension.kt [124:169]


    override fun check(
      resolvedCall: ResolvedCall<*>,
      reportOn: PsiElement,
      context: CallCheckerContext
    ) {
      when (val resultingDescriptor = resolvedCall.resultingDescriptor) {
        is FunctionImportedFromObject -> {
          collectTypeReferences((resolvedCall.resultingDescriptor as FunctionImportedFromObject).containingObject.defaultType)
        }
        is PropertyImportedFromObject -> {
          collectTypeReferences((resolvedCall.resultingDescriptor as PropertyImportedFromObject).containingObject.defaultType)
        }
        is JavaMethodDescriptor -> {
          getClassCanonicalPath((resultingDescriptor.containingDeclaration as ClassDescriptor).typeConstructor)?.let { explicitClassesCanonicalPaths.add(it) }
        }
        is FunctionDescriptor -> {
          resultingDescriptor.returnType?.let { addImplicitDep(it) }
          resultingDescriptor.valueParameters.forEach { valueParameter ->
            addImplicitDep(valueParameter.type)
          }
          val virtualFileClass = resultingDescriptor.getContainingKotlinJvmBinaryClass() as? VirtualFileKotlinClass
            ?: return
          explicitClassesCanonicalPaths.add(virtualFileClass.file.path)
        }
        is ParameterDescriptor -> {
          getClassCanonicalPath(resultingDescriptor)?.let { explicitClassesCanonicalPaths.add(it) }
        }
        is FakeCallableDescriptorForObject -> {
          collectTypeReferences(resultingDescriptor.type)
        }
        is JavaPropertyDescriptor -> {
          getClassCanonicalPath(resultingDescriptor)?.let { explicitClassesCanonicalPaths.add(it) }
        }
        is PropertyDescriptor -> {
          when (resultingDescriptor.containingDeclaration) {
            is ClassDescriptor -> collectTypeReferences((resultingDescriptor.containingDeclaration as ClassDescriptor).defaultType)
            else -> {
              val virtualFileClass = (resultingDescriptor).getContainingKotlinJvmBinaryClass() as? VirtualFileKotlinClass ?: return
              explicitClassesCanonicalPaths.add(virtualFileClass.file.path)
            }
          }
          addImplicitDep(resultingDescriptor.type)
        }
        else -> return
      }
    }