From f693a76196c4ed05235ab11bf046e43162918650 Mon Sep 17 00:00:00 2001 From: twisti <76837088+twisti-dev@users.noreply.github.com> Date: Sat, 24 Jan 2026 23:25:30 +0100 Subject: [PATCH] Fix hook metadata emission on unresolved deps --- .../surf/surfapi/processor/hook/HookSymbolProcessor.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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 +}