From 80faed3ffe9fc0d06544b463db5ae211bedc794e Mon Sep 17 00:00:00 2001 From: Johannes Feichtner <343448+Churro@users.noreply.github.com> Date: Tue, 7 Jan 2025 07:53:48 +0100 Subject: [PATCH] fix(gradle): avoid heuristic matching of gradle feature variant capabilities (#33438) --- lib/modules/manager/gradle/parser.spec.ts | 13 +++++++------ lib/modules/manager/gradle/parser/dependencies.ts | 3 +++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/modules/manager/gradle/parser.spec.ts b/lib/modules/manager/gradle/parser.spec.ts index 668c6b3ff1..d234b041ed 100644 --- a/lib/modules/manager/gradle/parser.spec.ts +++ b/lib/modules/manager/gradle/parser.spec.ts @@ -759,12 +759,13 @@ describe('modules/manager/gradle/parser', () => { describe('heuristic dependency matching', () => { it.each` - input | output - ${'("foo", "bar", "1.2.3")'} | ${{ depName: 'foo:bar', currentValue: '1.2.3' }} - ${'("foo", "bar", "1.2.3", "4.5.6")'} | ${null} - ${'(["foo", "bar", "1.2.3"])'} | ${null} - ${'someMethod("foo", "bar", "1.2.3")'} | ${{ depName: 'foo:bar', currentValue: '1.2.3' }} - ${'listOf("foo", "bar", "baz")'} | ${null} + input | output + ${'("foo", "bar", "1.2.3")'} | ${{ depName: 'foo:bar', currentValue: '1.2.3' }} + ${'("foo", "bar", "1.2.3", "4.5.6")'} | ${null} + ${'(["foo", "bar", "1.2.3"])'} | ${null} + ${'someMethod("foo", "bar", "1.2.3")'} | ${{ depName: 'foo:bar', currentValue: '1.2.3' }} + ${'listOf("foo", "bar", "baz")'} | ${null} + ${'java { registerFeature(foo) { capability("foo", "bar", "1.2.3") } }'} | ${null} `('$input', ({ input, output }) => { const { deps } = parseGradle(input); expect(deps).toMatchObject([output].filter(is.truthy)); diff --git a/lib/modules/manager/gradle/parser/dependencies.ts b/lib/modules/manager/gradle/parser/dependencies.ts index d8778737ed..93e029da40 100644 --- a/lib/modules/manager/gradle/parser/dependencies.ts +++ b/lib/modules/manager/gradle/parser/dependencies.ts @@ -4,6 +4,7 @@ import type { Ctx } from '../types'; import { GRADLE_PLUGINS, cleanupTempVars, + qDotOrBraceExpr, qTemplateString, qValueMatcher, storeInTokenMap, @@ -204,4 +205,6 @@ export const qDependencies = q.alt( qKotlinShortNotationDependencies, qKotlinMapNotationDependencies, qImplicitGradlePlugin, + // avoid heuristic matching of gradle feature variant capabilities + qDotOrBraceExpr('java', q.sym<Ctx>('registerFeature').tree()), ); -- GitLab