You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
arg.value.promote("Cannot prove the method argument is hot. Only hot values are safe to leak.\nFound = "+ arg.value.show +".")
1151
+
arg.value.promote("Could not verify that the method argument is transitively initialized (Hot). It was found to be "+ arg.value.show +". Only transitively initialized arguments may be passed to methods (except constructors).")
1148
1152
}
1149
1153
1150
1154
/** Evaluate an expression with the given value for `this` in a given class `klass`
@@ -1285,12 +1289,12 @@ object Semantic:
1285
1289
eval(qual, thisV, klass)
1286
1290
valres= eval(rhs, thisV, klass)
1287
1291
extendTrace(expr) {
1288
-
res.ensureHot("The RHS of reassignment must be hot. Found ="+ res.show +". ")
1292
+
res.ensureHot("The RHS of reassignment must be transitively initialized (Hot). It was found to be"+ res.show +". ")
1289
1293
}
1290
1294
caseid: Ident=>
1291
1295
valres= eval(rhs, thisV, klass)
1292
1296
extendTrace(expr) {
1293
-
res.ensureHot("The RHS of reassignment must be hot. Found ="+ res.show +". ")
1297
+
res.ensureHot("The RHS of reassignment must be transitively initialized (Hot). It was found to be"+ res.show +". ")
1294
1298
}
1295
1299
1296
1300
case closureDef(ddef) =>
@@ -1313,14 +1317,14 @@ object Semantic:
1313
1317
caseMatch(selector, cases) =>
1314
1318
valres= eval(selector, thisV, klass)
1315
1319
extendTrace(selector) {
1316
-
res.ensureHot("The value to be matched needs to be hot. Found ="+ res.show +". ")
1320
+
res.ensureHot("The value to be matched needs to be transitively initialized (Hot). It was found to be"+ res.show +". ")
1317
1321
}
1318
1322
eval(cases.map(_.body), thisV, klass).join
1319
1323
1320
1324
caseReturn(expr, from) =>
1321
1325
valres= eval(expr, thisV, klass)
1322
1326
extendTrace(expr) {
1323
-
res.ensureHot("return expression must be hot. Found ="+ res.show +". ")
1327
+
res.ensureHot("return expression must be transitively initialized (Hot). It was found to be"+ res.show +". ")
|Could not verify that the method argument is transitively initialized (Hot). It was found to be a function where "this" is (the original object of type (class Outer) where initialization checking started). Only transitively initialized arguments may be passed to methods (except constructors). Calling trace:
|Promoting the value to transitively initialized (Hot) failed due to the following problem:
11
+
|Could not verify that the method argument is transitively initialized (Hot). It was found to be the original object of type (class Outer) where initialization checking started. Only transitively initialized arguments may be passed to methods (except constructors).
12
+
|Non initialized field(s): value p. Promotion trace:
|Could not verify that the method argument is transitively initialized (Hot). It was found to be the original object of type (class B) where initialization checking started. Only transitively initialized arguments may be passed to methods (except constructors).
5
+
|Non initialized field(s): value result. Calling trace:
6
+
|-> class B extends A { [ default-this.scala:6 ]
7
+
| ^
8
+
|-> val result = updateThenCompare(5) [ default-this.scala:11 ]
| Cannot prove the method argument is hot. Only hot values are safe to leak.
5
-
| Found = ThisRef[class Sub].
6
-
| Non initialized field(s): value b. Calling trace:
7
-
| -> class Sub extends Sup: [ i15459.scala:5 ]
8
-
| ^
9
-
| -> class Sup: [ i15459.scala:1 ]
10
-
| ^
11
-
| -> println(this) // error [ i15459.scala:3 ]
12
-
| ^^^^
4
+
|Could not verify that the method argument is transitively initialized (Hot). It was found to be the original object of type (class Sub) where initialization checking started. Only transitively initialized arguments may be passed to methods (except constructors).
5
+
|Non initialized field(s): value b. Calling trace:
| The RHS of reassignment must be hot. Found = Warm[class B] { outer = Hot, args = (Cold) }. Calling trace:
5
-
|-> class C extends A { [ inherit-non-hot.scala:15 ]
6
-
| ^
7
-
|-> val bAgain = toB.getBAgain [ inherit-non-hot.scala:16 ]
8
-
| ^^^
9
-
|-> def toB: B = [ inherit-non-hot.scala:5 ]
10
-
| ^
11
-
|-> if b == null then b = new B(this) // error [ inherit-non-hot.scala:6 ]
12
-
| ^^^^^^^^^^^^^^^
4
+
|The RHS of reassignment must be transitively initialized (Hot). It was found to be a non-transitively initialized (Warm) object of type (class B) { outer = a transitively initialized (Hot) object, args = (an uninitialized (Cold) object) }. Calling trace:
5
+
|-> class C extends A { [ inherit-non-hot.scala:15 ]
6
+
| ^
7
+
|-> val bAgain = toB.getBAgain [ inherit-non-hot.scala:16 ]
8
+
| ^^^
9
+
|-> def toB: B = [ inherit-non-hot.scala:5 ]
10
+
| ^
11
+
|-> if b == null then b = new B(this) // error [ inherit-non-hot.scala:6 ]
12
+
| ^^^^^^^^^^^^^^^
13
13
|
14
-
|Promoting the value to hot (transitively initialized) failed due to the following problem:
15
-
| Cannot prove that the field value a is hot. Found = Cold. Promotion trace:
16
-
|-> class B(a: A) { [ inherit-non-hot.scala:10 ]
17
-
| ^^^^
14
+
|Promoting the value to transitively initialized (Hot) failed due to the following problem:
15
+
|Could not verify that the field value a is transitively initialized (Hot). It was found to be an uninitialized (Cold) object. Promotion trace:
|Could not verify that the method argument is transitively initialized (Hot). It was found to be the original object of type (class InlineError) where initialization checking started. Only transitively initialized arguments may be passed to methods (except constructors).
5
+
|Non initialized field(s): value v. Calling trace:
6
+
|-> class InlineError { [ inlined-method.scala:1 ]
|Could not verify that the method argument is transitively initialized (Hot). It was found to be the original object of type (class B) where initialization checking started. Only transitively initialized arguments may be passed to methods (except constructors).
5
+
|Non initialized field(s): value n. Calling trace:
0 commit comments