@@ -433,117 +433,33 @@ public void visitSimpleNameExpression(KtSimpleNameExpression expression) {
433433 expression .getText (),
434434 expression .getReferencedName ());
435435
436- // If we're inside an inline function, track class usage
437- if (currentInlineFunction != null ) {
438- String referencedName = expression .getReferencedName ();
439-
440- // Check if this is a class reference (constructor call or type reference)
441- // This includes both PascalCase class names and constructor calls
442- if (isLikelyClassName (referencedName )) {
443- // Try to resolve to fully qualified name
444- if (fqImportByNameOrAlias .containsKey (referencedName )) {
445- String fqName = fqImportByNameOrAlias .get (referencedName ).toString ();
446- currentInlineFunctionDeps .add (fqName );
447- logger .debug ("Inline function " + currentInlineFunction + " uses class: " + fqName );
448- } else if (referencedName .contains ("." )) {
449- // Already fully qualified
450- currentInlineFunctionDeps .add (referencedName );
451- logger .debug (
452- "Inline function " + currentInlineFunction + " uses class: " + referencedName );
453- } else {
454- // For unresolved class names, add them as potential dependencies
455- // This handles cases where imports might not be fully resolved
456- logger .debug (
457- "Inline function "
458- + currentInlineFunction
459- + " uses unresolved class: "
460- + referencedName );
461- }
436+ String referencedName = expression .getReferencedName ();
437+ if (isLikelyClassName (referencedName )) {
438+ trackClassUsage (referencedName , currentInlineFunction , currentInlineFunctionDeps );
439+ trackClassUsage (referencedName , currentExtensionFunction , currentExtensionFunctionDeps );
440+ if (currentlyInPropertyDelegate ) {
441+ trackClassUsage (referencedName , "property delegate" , currentPropertyDelegateDeps );
462442 }
443+ trackClassUsage (referencedName , currentComponentFunction , currentComponentFunctionDeps );
463444 }
464445
465- // If we're inside an extension function, track class usage
466- if (currentExtensionFunction != null ) {
467- String referencedName = expression .getReferencedName ();
468-
469- // Check if this is a class reference (constructor call or type reference)
470- if (isLikelyClassName (referencedName )) {
471- // Try to resolve to fully qualified name
472- if (fqImportByNameOrAlias .containsKey (referencedName )) {
473- String fqName = fqImportByNameOrAlias .get (referencedName ).toString ();
474- currentExtensionFunctionDeps .add (fqName );
475- logger .debug (
476- "Extension function " + currentExtensionFunction + " uses class: " + fqName );
477- } else if (referencedName .contains ("." )) {
478- // Already fully qualified
479- currentExtensionFunctionDeps .add (referencedName );
480- logger .debug (
481- "Extension function "
482- + currentExtensionFunction
483- + " uses class: "
484- + referencedName );
485- } else {
486- logger .debug (
487- "Extension function "
488- + currentExtensionFunction
489- + " uses unresolved class: "
490- + referencedName );
491- }
492- }
493- }
446+ super .visitSimpleNameExpression (expression );
447+ }
494448
495- // If we're inside a property delegate, track class usage
496- if (currentlyInPropertyDelegate ) {
497- String referencedName = expression .getReferencedName ();
498-
499- // Check if this is a class reference (constructor call or type reference)
500- if (isLikelyClassName (referencedName )) {
501- // Try to resolve to fully qualified name
502- if (fqImportByNameOrAlias .containsKey (referencedName )) {
503- String fqName = fqImportByNameOrAlias .get (referencedName ).toString ();
504- currentPropertyDelegateDeps .add (fqName );
505- logger .debug ("Property delegate uses class: " + fqName );
506- } else if (referencedName .contains ("." )) {
507- // Already fully qualified
508- currentPropertyDelegateDeps .add (referencedName );
509- logger .debug ("Property delegate uses class: " + referencedName );
510- } else {
511- logger .debug ("Property delegate uses unresolved class: " + referencedName );
512- }
513- }
449+ private void trackClassUsage (String referencedName , String context , Set <String > deps ) {
450+ if (context == null || deps == null ) {
451+ return ;
514452 }
515-
516- // If we're inside a componentN() function, track class usage
517- if (currentComponentFunction != null ) {
518- String referencedName = expression .getReferencedName ();
519-
520- // Check if this is a class reference (constructor call or type reference)
521- if (isLikelyClassName (referencedName )) {
522- // Try to resolve to fully qualified name
523- if (fqImportByNameOrAlias .containsKey (referencedName )) {
524- String fqName = fqImportByNameOrAlias .get (referencedName ).toString ();
525- currentComponentFunctionDeps .add (fqName );
526- logger .debug (
527- "ComponentN function " + currentComponentFunction + " uses class: " + fqName );
528- } else if (referencedName .contains ("." )) {
529- // Already fully qualified
530- currentComponentFunctionDeps .add (referencedName );
531- logger .debug (
532- "ComponentN function "
533- + currentComponentFunction
534- + " uses class: "
535- + referencedName );
536- } else {
537- logger .debug (
538- "ComponentN function "
539- + currentComponentFunction
540- + " uses unresolved class: "
541- + referencedName );
542- }
543- }
453+ if (fqImportByNameOrAlias .containsKey (referencedName )) {
454+ String fqName = fqImportByNameOrAlias .get (referencedName ).toString ();
455+ deps .add (fqName );
456+ logger .debug (context + " uses class: " + fqName );
457+ } else if (referencedName .contains ("." )) {
458+ deps .add (referencedName );
459+ logger .debug (context + " uses class: " + referencedName );
460+ } else {
461+ logger .debug (context + " uses unresolved class: " + referencedName );
544462 }
545-
546- super .visitSimpleNameExpression (expression );
547463 }
548464
549465 @ Override
0 commit comments