@@ -287,12 +287,13 @@ class Definitions {
287
287
@ tu lazy val Any_hashCode : TermSymbol = enterMethod(AnyClass , nme.hashCode_, MethodType (Nil , IntType ))
288
288
@ tu lazy val Any_toString : TermSymbol = enterMethod(AnyClass , nme.toString_, MethodType (Nil , StringType ))
289
289
@ tu lazy val Any_## : TermSymbol = enterMethod(AnyClass , nme.HASHHASH , ExprType (IntType ), Final )
290
- @ tu lazy val Any_isInstanceOf : TermSymbol = enterT1ParameterlessMethod(AnyClass , nme.isInstanceOf_, _ => BooleanType , Final )
291
290
@ tu lazy val Any_asInstanceOf : TermSymbol = enterT1ParameterlessMethod(AnyClass , nme.asInstanceOf_, _.paramRefs(0 ), Final )
292
291
@ tu lazy val Any_typeTest : TermSymbol = enterT1ParameterlessMethod(AnyClass , nme.isInstanceOfPM, _ => BooleanType , Final | Synthetic | Artifact )
293
292
@ tu lazy val Any_typeCast : TermSymbol = enterT1ParameterlessMethod(AnyClass , nme.asInstanceOfPM, _.paramRefs(0 ), Final | Synthetic | Artifact | StableRealizable )
294
293
// generated by pattern matcher and explicit nulls, eliminated by erasure
295
294
295
+ @ tu lazy val Scrutable_isInstanceOf : TermSymbol = enterT1ParameterlessMethod(ScrutableClass , nme.isInstanceOf_, _ => BooleanType , Final )
296
+
296
297
/** def getClass[A >: this.type](): Class[? <: A] */
297
298
@ tu lazy val Scrutable_getClass : TermSymbol =
298
299
enterPolyMethod(
@@ -302,9 +303,9 @@ class Definitions {
302
303
bounds = TypeBounds .lower(ScrutableClass .thisType))
303
304
304
305
def AnyMethods : List [TermSymbol ] = List (Any_== , Any_!= , Any_equals , Any_hashCode ,
305
- Any_toString , Any_## , Any_isInstanceOf , Any_asInstanceOf , Any_typeTest , Any_typeCast )
306
+ Any_toString , Any_## , Scrutable_isInstanceOf , Any_asInstanceOf , Any_typeTest , Any_typeCast )
306
307
307
- def ScrutableMethods : List [TermSymbol ] = List (Scrutable_getClass )
308
+ def ScrutableMethods : List [TermSymbol ] = List (Scrutable_getClass , Scrutable_isInstanceOf )
308
309
309
310
@ tu lazy val ScrutableMethodNames = ScrutableMethods .map(_.name)
310
311
@@ -442,7 +443,7 @@ class Definitions {
442
443
443
444
/** Methods in Object, Scrutable, and Any that do not have a side effect */
444
445
@ tu lazy val pureMethods : List [TermSymbol ] = List (Any_== , Any_!= , Any_equals , Any_hashCode ,
445
- Any_toString , Any_## , Scrutable_getClass , Any_isInstanceOf , Any_typeTest , Object_eq , Object_ne )
446
+ Any_toString , Any_## , Scrutable_getClass , Scrutable_isInstanceOf , Any_typeTest , Object_eq , Object_ne )
446
447
447
448
@ tu lazy val AnyKindClass : ClassSymbol = {
448
449
val cls = newCompleteClassSymbol(ScalaPackageClass , tpnme.AnyKind , AbstractFinal | Permanent , Nil )
@@ -1431,7 +1432,7 @@ class Definitions {
1431
1432
@ tu lazy val NoInitClasses : Set [Symbol ] = NotRuntimeClasses + FunctionXXLClass
1432
1433
1433
1434
def isPolymorphicAfterErasure (sym : Symbol ): Boolean =
1434
- (sym eq Any_isInstanceOf ) || (sym eq Any_asInstanceOf ) || (sym eq Object_synchronized )
1435
+ (sym eq Scrutable_isInstanceOf ) || (sym eq Any_asInstanceOf ) || (sym eq Object_synchronized )
1435
1436
1436
1437
def isTupleType (tp : Type )(using Context ): Boolean = {
1437
1438
val arity = tp.dealias.argInfos.length
0 commit comments