@@ -506,13 +506,6 @@ func (pkgDefs *PackagesDefinitions) findPackagePathFromImports(pkg string, file
506
506
}
507
507
508
508
func (pkgDefs * PackagesDefinitions ) findTypeSpecFromPackagePaths (matchedPkgPaths , externalPkgPaths []string , name string ) (typeDef * TypeSpecDef ) {
509
- for _ , pkgPath := range matchedPkgPaths {
510
- typeDef = pkgDefs .findTypeSpec (pkgPath , name )
511
- if typeDef != nil {
512
- return typeDef
513
- }
514
- }
515
-
516
509
if pkgDefs .parseDependency > 0 {
517
510
for _ , pkgPath := range externalPkgPaths {
518
511
if err := pkgDefs .loadExternalPackage (pkgPath ); err == nil {
@@ -524,6 +517,13 @@ func (pkgDefs *PackagesDefinitions) findTypeSpecFromPackagePaths(matchedPkgPaths
524
517
}
525
518
}
526
519
520
+ for _ , pkgPath := range matchedPkgPaths {
521
+ typeDef = pkgDefs .findTypeSpec (pkgPath , name )
522
+ if typeDef != nil {
523
+ return typeDef
524
+ }
525
+ }
526
+
527
527
return typeDef
528
528
}
529
529
@@ -542,13 +542,14 @@ func (pkgDefs *PackagesDefinitions) FindTypeSpec(typeName string, file *ast.File
542
542
543
543
parts := strings .Split (strings .Split (typeName , "[" )[0 ], "." )
544
544
if len (parts ) > 1 {
545
- typeDef , ok := pkgDefs .uniqueDefinitions [typeName ]
546
- if ok {
547
- return typeDef
548
- }
549
-
550
545
pkgPaths , externalPkgPaths := pkgDefs .findPackagePathFromImports (parts [0 ], file )
551
- typeDef = pkgDefs .findTypeSpecFromPackagePaths (pkgPaths , externalPkgPaths , parts [1 ])
546
+ if len (externalPkgPaths ) == 0 || pkgDefs .parseDependency == ParseNone {
547
+ typeDef , ok := pkgDefs .uniqueDefinitions [typeName ]
548
+ if ok {
549
+ return typeDef
550
+ }
551
+ }
552
+ typeDef := pkgDefs .findTypeSpecFromPackagePaths (pkgPaths , externalPkgPaths , parts [1 ])
552
553
return pkgDefs .parametrizeGenericType (file , typeDef , typeName )
553
554
}
554
555
0 commit comments