Skip to content

Commit

Permalink
fix(manager/gradle): resolve values when assigning symbols to variabl…
Browse files Browse the repository at this point in the history
…es (#21411)
  • Loading branch information
Churro committed Apr 10, 2023
1 parent 80c3725 commit b088733
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 4 deletions.
13 changes: 12 additions & 1 deletion lib/modules/manager/gradle/parser.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ describe('modules/manager/gradle/parser', () => {
libraries += [
guava: "com.google.guava:guava:31.1-jre",
detekt: '1.18.1',
core2: versions.core
]
}
`;
Expand All @@ -98,6 +99,10 @@ describe('modules/manager/gradle/parser', () => {
key: 'libraries.detekt',
value: '1.18.1',
},
'libraries.core2': {
key: 'versions.core',
value: '1.7.0',
},
});
});

Expand Down Expand Up @@ -246,6 +251,7 @@ describe('modules/manager/gradle/parser', () => {

it('nested map', () => {
const input = codeBlock`
val junitPlatformVersion: String by extra { "1.0.1" }
ext["deps"] = mapOf(
"support" to mapOf(
"appCompat" to "com.android.support:appcompat-v7:26.0.2",
Expand All @@ -259,7 +265,8 @@ describe('modules/manager/gradle/parser', () => {
"support2" to mapOfInvalid(
"design2" to "com.android.support:design:26.0.2"
),
"picasso" to "com.squareup.picasso:picasso:2.5.2"
"picasso" to "com.squareup.picasso:picasso:2.5.2",
"junit-platform-runner" to junitPlatformVersion
)
`;

Expand All @@ -285,6 +292,10 @@ describe('modules/manager/gradle/parser', () => {
key: 'deps.picasso',
value: 'com.squareup.picasso:picasso:2.5.2',
},
'deps.junit-platform-runner': {
key: 'junitPlatformVersion',
value: '1.0.1',
},
});
});

Expand Down
6 changes: 3 additions & 3 deletions lib/modules/manager/gradle/parser/assignments.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
increaseNestingDepth,
prependNestingDepth,
qStringValue,
qTemplateString,
qValueMatcher,
qVariableAssignmentIdentifier,
reduceNestingDepth,
storeInTokenMap,
Expand Down Expand Up @@ -76,7 +76,7 @@ const qGroovySingleMapOfVarAssignment = q.alt(
.handler(coalesceVariable)
.handler((ctx) => storeInTokenMap(ctx, 'keyToken'))
.op(':')
.join(qTemplateString)
.join(qValueMatcher)
.handler((ctx) => storeInTokenMap(ctx, 'valToken'))
.handler(handleAssignment)
);
Expand Down Expand Up @@ -117,7 +117,7 @@ const qKotlinSingleMapOfVarAssignment = qStringValue
.handler(prependNestingDepth)
.handler(coalesceVariable)
.handler((ctx) => storeInTokenMap(ctx, 'keyToken'))
.join(qTemplateString)
.join(qValueMatcher)
.handler((ctx) => storeInTokenMap(ctx, 'valToken'))
.handler(handleAssignment);

Expand Down
6 changes: 6 additions & 0 deletions lib/modules/manager/gradle/parser/handlers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@ export function handleAssignment(ctx: Ctx): Ctx {
ctx.tokenMap.templateStringTokens = valTokens;
handleDepString(ctx);
delete ctx.tokenMap.templateStringTokens;
} else if (valTokens[0].type === 'symbol') {
// foo = bar || foo = "${bar}"
const varData = ctx.globalVars[valTokens[0].value];
if (varData) {
ctx.globalVars[key] = { ...varData };
}
} else {
// = string value
const dep = parseDependencyString(valTokens[0].value);
Expand Down

0 comments on commit b088733

Please sign in to comment.