@@ -2372,18 +2372,23 @@ open class KotlinFileExtractor(
2372
2372
callable : Label <out DbCallable >,
2373
2373
enclosingStmt : Label <out DbStmt >
2374
2374
) {
2375
- val isAnonymous = e.type.isAnonymous
2375
+ val eType = e.type
2376
+ if (eType !is IrSimpleType ) {
2377
+ logger.errorElement(" Constructor call has non-simple type ${eType.javaClass} " , e)
2378
+ return
2379
+ }
2380
+ val isAnonymous = eType.isAnonymous
2376
2381
val type: TypeResults = if (isAnonymous) {
2377
2382
if (e.typeArgumentsCount > 0 ) {
2378
- logger.warn (" Unexpected type arguments for anonymous class constructor call" )
2383
+ logger.warnElement (" Unexpected type arguments ( ${e.typeArgumentsCount} ) for anonymous class constructor call" , e )
2379
2384
}
2380
- val c = (e.type as IrSimpleType ) .classifier.owner as IrClass
2385
+ val c = eType .classifier.owner as IrClass
2381
2386
useAnonymousClass(c)
2382
2387
} else {
2383
- useType(e.type )
2388
+ useType(eType )
2384
2389
}
2385
2390
val locId = tw.getLocation(e)
2386
- val id = extractNewExpr(e.symbol.owner, (e.type as ? IrSimpleType )? .arguments, type, locId, parent, idx, callable, enclosingStmt)
2391
+ val id = extractNewExpr(e.symbol.owner, eType .arguments, type, locId, parent, idx, callable, enclosingStmt)
2387
2392
2388
2393
if (isAnonymous) {
2389
2394
tw.writeIsAnonymClass(type.javaResult.id.cast<DbClass >(), id)
@@ -2397,7 +2402,7 @@ open class KotlinFileExtractor(
2397
2402
}
2398
2403
2399
2404
val typeAccessType = if (isAnonymous) {
2400
- val c = (e.type as IrSimpleType ) .classifier.owner as IrClass
2405
+ val c = eType .classifier.owner as IrClass
2401
2406
if (c.superTypes.size == 1 ) {
2402
2407
useType(c.superTypes.first())
2403
2408
} else {
@@ -2408,7 +2413,7 @@ open class KotlinFileExtractor(
2408
2413
}
2409
2414
2410
2415
if (e is IrConstructorCall ) {
2411
- extractConstructorTypeAccess(e.type , typeAccessType, e.symbol, locId, id, - 3 , callable, enclosingStmt)
2416
+ extractConstructorTypeAccess(eType , typeAccessType, e.symbol, locId, id, - 3 , callable, enclosingStmt)
2412
2417
} else {
2413
2418
val typeAccessId =
2414
2419
extractTypeAccess(typeAccessType, locId, id, - 3 , callable, enclosingStmt)
0 commit comments