@@ -41,6 +41,8 @@ private predicate isPackageExport(API::Node node) { node = API::moduleExport(_)
41
41
private predicate relevantEdge ( API:: Node pred , API:: Node succ ) {
42
42
succ = pred .getMember ( _) and
43
43
not isPrivateLike ( succ )
44
+ or
45
+ succ = pred .getInstance ( )
44
46
}
45
47
46
48
/** Gets the shortest distance from a packaeg export to `nd` in the API graph. */
@@ -77,19 +79,25 @@ private predicate isPrivateLike(API::Node node) { isPrivateAssignment(node.asSin
77
79
private API:: Node getASuccessor ( API:: Node node , string name , int badness ) {
78
80
isExported ( node ) and
79
81
isExported ( result ) and
80
- exists ( string member |
81
- result = node .getMember ( member ) and
82
- if member = "default"
83
- then
84
- if defaultExportCanBeInterpretedAsNamespaceExport ( node )
85
- then (
86
- badness = 5 and name = ""
87
- ) else (
88
- badness = 10 and name = "default"
82
+ (
83
+ exists ( string member |
84
+ result = node .getMember ( member ) and
85
+ if member = "default"
86
+ then
87
+ if defaultExportCanBeInterpretedAsNamespaceExport ( node )
88
+ then (
89
+ badness = 5 and name = ""
90
+ ) else (
91
+ badness = 10 and name = "default"
92
+ )
93
+ else (
94
+ name = member and badness = 0
89
95
)
90
- else (
91
- name = member and badness = 0
92
96
)
97
+ or
98
+ result = node .getInstance ( ) and
99
+ name = "prototype" and
100
+ badness = 0
93
101
)
94
102
}
95
103
@@ -315,10 +323,6 @@ private predicate functionHasNameCandidate(
315
323
classObjectHasPrimaryName ( cls , package , name , badness )
316
324
or
317
325
exists ( string baseName , string memberName |
318
- function = cls .getInstanceMethod ( memberName ) and
319
- classInstanceHasPrimaryName ( cls , package , baseName , badness ) and
320
- name = join ( baseName , memberName )
321
- or
322
326
function = cls .getStaticMethod ( memberName ) and
323
327
classObjectHasPrimaryName ( cls , package , baseName , badness ) and
324
328
name = join ( baseName , memberName )
0 commit comments