Skip to content

Commit fbdaf83

Browse files
committed
Committing test case
1 parent c9a1165 commit fbdaf83

5 files changed

Lines changed: 34 additions & 1 deletion

File tree

src/main/java/com/hubspot/jinjava/lib/fn/eager/EagerMacroFunction.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,15 @@ public Object doEvaluate(
7171
interpreter
7272
);
7373
if (!result.getResult().isFullyResolved()) {
74+
if (
75+
result
76+
.getSpeculativeBindings()
77+
.keySet()
78+
.stream()
79+
.anyMatch(key -> localContextScope.getScope().containsKey(key))
80+
) {
81+
throw new DeferredValueException("e");
82+
}
7483
result =
7584
eagerEvaluateInDeferredExecutionMode(
7685
() -> getEvaluationResultDirectly(argMap, kwargMap, varArgs, interpreter),
@@ -294,7 +303,7 @@ private String getSetTagForAliasedVariables(String fullName) {
294303
.getCombinedScope()
295304
.entrySet()
296305
.stream()
297-
.filter(entry -> entry.getValue() instanceof DeferredValue)
306+
// .filter(entry -> entry.getValue() instanceof DeferredValue)
298307
.map(Entry::getKey)
299308
.collect(Collectors.toMap(Function.identity(), name -> aliasName + name));
300309
return EagerReconstructionUtils.buildSetTag(

src/test/java/com/hubspot/jinjava/EagerTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1499,4 +1499,11 @@ public void itAllowsVariableSharingAliasName() {
14991499
"allows-variable-sharing-alias-name"
15001500
);
15011501
}
1502+
1503+
@Test
1504+
public void itAllowsModificationInAliasedMacro() {
1505+
expectedTemplateInterpreter.assertExpectedOutput(
1506+
"allows-modification-in-aliased-macro"
1507+
);
1508+
}
15021509
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{% import 'eager/settings.jinja' as shared %}
2+
3+
{% if deferred %}
4+
{{ shared.load_settings() }}
5+
{% endif %}
6+
{{ shared.settings }}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{% import 'eager/settings.jinja' as shared %}
2+
3+
{% if deferred %}
4+
{{ shared.load_settings() }}
5+
{% endif %}
6+
{{ shared.settings }}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{% set settings = {} %}
2+
3+
{% macro load_settings() %}
4+
{% do settings.put('foo', 'bar') %}
5+
{% endmacro %}

0 commit comments

Comments
 (0)