@@ -2372,18 +2372,23 @@ open class KotlinFileExtractor(
23722372 callable : Label <out DbCallable >,
23732373 enclosingStmt : Label <out DbStmt >
23742374 ) {
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
23762381 val type: TypeResults = if (isAnonymous) {
23772382 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 )
23792384 }
2380- val c = (e.type as IrSimpleType ) .classifier.owner as IrClass
2385+ val c = eType .classifier.owner as IrClass
23812386 useAnonymousClass(c)
23822387 } else {
2383- useType(e.type )
2388+ useType(eType )
23842389 }
23852390 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)
23872392
23882393 if (isAnonymous) {
23892394 tw.writeIsAnonymClass(type.javaResult.id.cast<DbClass >(), id)
@@ -2397,7 +2402,7 @@ open class KotlinFileExtractor(
23972402 }
23982403
23992404 val typeAccessType = if (isAnonymous) {
2400- val c = (e.type as IrSimpleType ) .classifier.owner as IrClass
2405+ val c = eType .classifier.owner as IrClass
24012406 if (c.superTypes.size == 1 ) {
24022407 useType(c.superTypes.first())
24032408 } else {
@@ -2408,7 +2413,7 @@ open class KotlinFileExtractor(
24082413 }
24092414
24102415 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)
24122417 } else {
24132418 val typeAccessId =
24142419 extractTypeAccess(typeAccessType, locId, id, - 3 , callable, enclosingStmt)
0 commit comments