diff --git a/surf-api-gradle-plugin/surf-api-processor/src/main/kotlin/dev/slne/surf/surfapi/processor/hook/HookSymbolProcessor.kt b/surf-api-gradle-plugin/surf-api-processor/src/main/kotlin/dev/slne/surf/surfapi/processor/hook/HookSymbolProcessor.kt index b01b1b94..fb24a0b6 100644 --- a/surf-api-gradle-plugin/surf-api-processor/src/main/kotlin/dev/slne/surf/surfapi/processor/hook/HookSymbolProcessor.kt +++ b/surf-api-gradle-plugin/surf-api-processor/src/main/kotlin/dev/slne/surf/surfapi/processor/hook/HookSymbolProcessor.kt @@ -38,6 +38,7 @@ class HookSymbolProcessor(environment: SymbolProcessorEnvironment) : SymbolProce val hooksMetas = resolver.getSymbolsWithAnnotation(HOOK_ANNOTATION) .filterIsInstance() .mapNotNull { hookClass -> + var hasUnresolvedClassDependency = false val hookMeta = hookClass.annotations.findAnnotation(HOOK_ANNOTATION) ?: run { logger.error("@HookMeta annotation not found on element", hookClass) return@mapNotNull null @@ -54,17 +55,23 @@ class HookSymbolProcessor(environment: SymbolProcessorEnvironment) : SymbolProce if (clazzValue.isError) { deferred += hookClass + hasUnresolvedClassDependency = true return@mapNotNull null } val closestClass = clazzValue.declaration.closestClassDeclaration() if (closestClass == null) { deferred += hookClass + hasUnresolvedClassDependency = true return@mapNotNull null } closestClass.toBinaryName() } + if (hasUnresolvedClassDependency) { + return@mapNotNull null + } + val dependsOnClassName = hookClass.annotations.findAnnotations(DEPENDS_ON_CLASS_NAME_ANNOTATION) .mapNotNull { annotation -> val classNameValue = @@ -152,4 +159,4 @@ class HookSymbolProcessor(environment: SymbolProcessorEnvironment) : SymbolProce it.annotationType.resolve().declaration.qualifiedName?.asString() == annotationClassName } } -} \ No newline at end of file +}