@@ -19,7 +19,8 @@ class BTypesTest extends BytecodeTesting {
19
19
}
20
20
import global .genBCode .bTypes ._
21
21
22
- def classBTFS (sym : global.Symbol ) = global.exitingDelambdafy(classBTypeFromSymbol(sym))
22
+ def duringBackend [T ](f : => T ) = global.exitingDelambdafy(f)
23
+ def classBTFS (sym : global.Symbol ) = duringBackend { classBTypeFromSymbol(sym) }
23
24
24
25
def jlo = global.definitions.ObjectClass
25
26
def jls = global.definitions.StringClass
@@ -221,4 +222,30 @@ class BTypesTest extends BytecodeTesting {
221
222
def maxTypeTest () {
222
223
223
224
}
225
+
226
+ @ Test
227
+ def maxValueTypeATest (): Unit = duringBackend {
228
+ assertEquals(LONG , LONG .maxValueType(BYTE ))
229
+ assertEquals(LONG , LONG .maxValueType(SHORT ))
230
+ assertEquals(LONG , LONG .maxValueType(CHAR ))
231
+ assertEquals(LONG , LONG .maxValueType(INT ))
232
+ assertEquals(LONG , LONG .maxValueType(LONG ))
233
+ assertEquals(FLOAT , LONG .maxValueType(FLOAT ))
234
+ assertEquals(DOUBLE , LONG .maxValueType(DOUBLE ))
235
+
236
+ assertUncomparable(LONG , UNIT )
237
+ assertUncomparable(LONG , BOOL )
238
+ assertUncomparable(LONG , o)
239
+ assertUncomparable(LONG , s)
240
+ assertUncomparable(LONG , oArr)
241
+ assertUncomparable(LONG , method)
242
+
243
+ def assertUncomparable (t1 : PrimitiveBType , t2 : BType ): Unit = {
244
+ try {
245
+ t1.maxValueType(t2)
246
+ } catch {
247
+ case e : AssertionError => assertEquals(s " Cannot compute maxValueType: $t1, $t2" , e.getMessage)
248
+ }
249
+ }
250
+ }
224
251
}
0 commit comments