@@ -2397,18 +2397,23 @@ open class KotlinFileExtractor(
23972397 callable : Label <out DbCallable >,
23982398 enclosingStmt : Label <out DbStmt >
23992399 ) {
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
24012406 val type: TypeResults = if (isAnonymous) {
24022407 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 )
24042409 }
2405- val c = (e.type as IrSimpleType ) .classifier.owner as IrClass
2410+ val c = eType .classifier.owner as IrClass
24062411 useAnonymousClass(c)
24072412 } else {
2408- useType(e.type )
2413+ useType(eType )
24092414 }
24102415 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)
24122417
24132418 if (isAnonymous) {
24142419 tw.writeIsAnonymClass(type.javaResult.id.cast<DbClass >(), id)
@@ -2422,7 +2427,7 @@ open class KotlinFileExtractor(
24222427 }
24232428
24242429 val typeAccessType = if (isAnonymous) {
2425- val c = (e.type as IrSimpleType ) .classifier.owner as IrClass
2430+ val c = eType .classifier.owner as IrClass
24262431 if (c.superTypes.size == 1 ) {
24272432 useType(c.superTypes.first())
24282433 } else {
@@ -2433,7 +2438,7 @@ open class KotlinFileExtractor(
24332438 }
24342439
24352440 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)
24372442 } else {
24382443 val typeAccessId =
24392444 extractTypeAccess(typeAccessType, locId, id, - 3 , callable, enclosingStmt)
0 commit comments