@@ -2397,18 +2397,23 @@ open class KotlinFileExtractor(
2397
2397
callable : Label <out DbCallable >,
2398
2398
enclosingStmt : Label <out DbStmt >
2399
2399
) {
2400
- val isAnonymous = e.type.isAnonymous
2400
+ val eType = e.type
2401
+ if (eType !is IrSimpleType ) {
2402
+ logger.errorElement(" Constructor call has non-simple type ${eType.javaClass} " , e)
2403
+ return
2404
+ }
2405
+ val isAnonymous = eType.isAnonymous
2401
2406
val type: TypeResults = if (isAnonymous) {
2402
2407
if (e.typeArgumentsCount > 0 ) {
2403
- logger.warn (" Unexpected type arguments for anonymous class constructor call" )
2408
+ logger.warnElement (" Unexpected type arguments ( ${e.typeArgumentsCount} ) for anonymous class constructor call" , e )
2404
2409
}
2405
- val c = (e.type as IrSimpleType ) .classifier.owner as IrClass
2410
+ val c = eType .classifier.owner as IrClass
2406
2411
useAnonymousClass(c)
2407
2412
} else {
2408
- useType(e.type )
2413
+ useType(eType )
2409
2414
}
2410
2415
val locId = tw.getLocation(e)
2411
- val id = extractNewExpr(e.symbol.owner, (e.type as ? IrSimpleType )? .arguments, type, locId, parent, idx, callable, enclosingStmt)
2416
+ val id = extractNewExpr(e.symbol.owner, eType .arguments, type, locId, parent, idx, callable, enclosingStmt)
2412
2417
2413
2418
if (isAnonymous) {
2414
2419
tw.writeIsAnonymClass(type.javaResult.id.cast<DbClass >(), id)
@@ -2422,7 +2427,7 @@ open class KotlinFileExtractor(
2422
2427
}
2423
2428
2424
2429
val typeAccessType = if (isAnonymous) {
2425
- val c = (e.type as IrSimpleType ) .classifier.owner as IrClass
2430
+ val c = eType .classifier.owner as IrClass
2426
2431
if (c.superTypes.size == 1 ) {
2427
2432
useType(c.superTypes.first())
2428
2433
} else {
@@ -2433,7 +2438,7 @@ open class KotlinFileExtractor(
2433
2438
}
2434
2439
2435
2440
if (e is IrConstructorCall ) {
2436
- extractConstructorTypeAccess(e.type , typeAccessType, e.symbol, locId, id, - 3 , callable, enclosingStmt)
2441
+ extractConstructorTypeAccess(eType , typeAccessType, e.symbol, locId, id, - 3 , callable, enclosingStmt)
2437
2442
} else {
2438
2443
val typeAccessId =
2439
2444
extractTypeAccess(typeAccessType, locId, id, - 3 , callable, enclosingStmt)
0 commit comments