@@ -41,6 +41,8 @@ private predicate isPackageExport(API::Node node) { node = API::moduleExport(_)
4141private predicate relevantEdge ( API:: Node pred , API:: Node succ ) {
4242 succ = pred .getMember ( _) and
4343 not isPrivateLike ( succ )
44+ or
45+ succ = pred .getInstance ( )
4446}
4547
4648/** 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
7779private API:: Node getASuccessor ( API:: Node node , string name , int badness ) {
7880 isExported ( node ) and
7981 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
8995 )
90- else (
91- name = member and badness = 0
9296 )
97+ or
98+ result = node .getInstance ( ) and
99+ name = "prototype" and
100+ badness = 0
93101 )
94102}
95103
@@ -315,10 +323,6 @@ private predicate functionHasNameCandidate(
315323 classObjectHasPrimaryName ( cls , package , name , badness )
316324 or
317325 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
322326 function = cls .getStaticMethod ( memberName ) and
323327 classObjectHasPrimaryName ( cls , package , baseName , badness ) and
324328 name = join ( baseName , memberName )
0 commit comments