Skip to content

Commit 5c3efb5

Browse files
Add more cases to handle properly when --broken-assertion-logic is set and bump to 0.5.8 (#541)
Manual cherry picking of #540
1 parent 983dbe4 commit 5c3efb5

5 files changed

Lines changed: 16 additions & 11 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## 0.5.8
2+
* Add more cases to handle properly when --broken-assertion-logic is set
3+
14
## 0.5.7
25
* Add flag (--broken-assertion-logic) to disable the new (correct) assertion logic introduced in 0.5.5.
36

sjsonnet/src/sjsonnet/Materializer.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ abstract class Materializer {
8585
case ujson.Obj(xs) =>
8686
val builder = new java.util.LinkedHashMap[String, Val.Obj.Member]
8787
for (x <- xs) {
88-
val v = new Val.Obj.Member(false, Visibility.Normal) {
88+
val v = new Val.Obj.Member(false, Visibility.Normal, deprecatedSkipAsserts = true) {
8989
def invoke(self: Val.Obj, sup: Val.Obj, fs: FileScope, ev: EvalScope): Val =
9090
reverse(pos, x._2)
9191
}

sjsonnet/src/sjsonnet/Std.scala

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,7 @@ class Std(
454454
var i = 0
455455
while (i < allKeys.length) {
456456
val k = allKeys(i)
457-
val v = new Val.Obj.Member(false, Visibility.Normal) {
457+
val v = new Val.Obj.Member(false, Visibility.Normal, deprecatedSkipAsserts = true) {
458458
def invoke(self: Val.Obj, sup: Val.Obj, fs: FileScope, ev: EvalScope): Val =
459459
func.apply2(Val.Str(pos, k), () => obj.value(k, pos.noOffset)(ev), pos.noOffset)(
460460
ev,
@@ -1136,9 +1136,10 @@ class Std(
11361136
builtin(Range),
11371137
builtin("mergePatch", "target", "patch") { (pos, ev, target: Val, patch: Val) =>
11381138
val mergePosition = pos
1139-
def createLazyMember(v: => Val) = new Val.Obj.Member(false, Visibility.Normal) {
1140-
def invoke(self: Val.Obj, sup: Val.Obj, fs: FileScope, ev: EvalScope): Val = v
1141-
}
1139+
def createLazyMember(v: => Val) =
1140+
new Val.Obj.Member(false, Visibility.Normal, deprecatedSkipAsserts = true) {
1141+
def invoke(self: Val.Obj, sup: Val.Obj, fs: FileScope, ev: EvalScope): Val = v
1142+
}
11421143
def recPair(l: Val, r: Val): Val = (l, r) match {
11431144
case (l: Val.Obj, r: Val.Obj) =>
11441145
val keys: Array[String] = distinctKeys(l.visibleKeyNames, r.visibleKeyNames)
@@ -2001,14 +2002,14 @@ class Std(
20012002
} ++ Seq(
20022003
(
20032004
"thisFile",
2004-
new Val.Obj.Member(false, Visibility.Hidden, cached = false) {
2005+
new Val.Obj.Member(false, Visibility.Hidden, cached = false, deprecatedSkipAsserts = true) {
20052006
def invoke(self: Val.Obj, sup: Val.Obj, fs: FileScope, ev: EvalScope): Val =
20062007
Val.Str(self.pos, fs.currentFile.relativeToString(ev.wd))
20072008
}
20082009
),
20092010
(
20102011
"pi",
2011-
new Val.Obj.Member(false, Visibility.Hidden, cached = false) {
2012+
new Val.Obj.Member(false, Visibility.Hidden, cached = false, deprecatedSkipAsserts = true) {
20122013
def invoke(self: Val.Obj, sup: Val.Obj, fs: FileScope, ev: EvalScope): Val =
20132014
Val.Num(self.pos, math.Pi)
20142015
}

sjsonnet/src/sjsonnet/Val.scala

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -203,12 +203,13 @@ object Val {
203203
abstract class Member(
204204
val add: Boolean,
205205
val visibility: Visibility,
206-
val cached: Boolean = true) {
206+
val cached: Boolean = true,
207+
val deprecatedSkipAsserts: Boolean = false) {
207208
def invoke(self: Obj, sup: Obj, fs: FileScope, ev: EvalScope): Val
208209
}
209210

210211
class ConstMember(add2: Boolean, visibility2: Visibility, v: Val, cached2: Boolean = true)
211-
extends Member(add2, visibility2, cached2) {
212+
extends Member(add2, visibility2, cached2, deprecatedSkipAsserts = true) {
212213
def invoke(self: Obj, sup: Obj, fs: FileScope, ev: EvalScope): Val = v
213214
}
214215

@@ -443,7 +444,7 @@ object Val {
443444
case null =>
444445
if (s == null) null else s.valueRaw(k, self, pos, addTo, addKey)
445446
case m =>
446-
if (!evaluator.settings.brokenAssertionLogic || !m.isInstanceOf[Val.Obj.ConstMember]) {
447+
if (!evaluator.settings.brokenAssertionLogic || !m.deprecatedSkipAsserts) {
447448
self.triggerAllAsserts(evaluator.settings.brokenAssertionLogic)
448449
}
449450
val vv = m.invoke(self, s, pos.fileScope, evaluator)

sjsonnet/version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.5.7
1+
0.5.8

0 commit comments

Comments
 (0)