File tree Expand file tree Collapse file tree
lib/semmle/python/frameworks/internal
test/experimental/library-tests/FindSubclass Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -163,12 +163,13 @@ module NotExposed {
163163 newOrExistingModeling ( spec ) .getASubclass * ( ) .getAValueReachableFromSource ( ) .asExpr ( ) and
164164 importMember .getScope ( ) = mod and
165165 loc = importMember .getLocation ( ) and
166- (
167- mod .isPackageInit ( ) and
168- newAliasFullyQualified = mod .getPackageName ( ) + "." + importMember .getName ( )
166+ exists ( Alias alias , string base |
167+ mod .isPackageInit ( ) and base = mod .getPackageName ( )
169168 or
170- not mod .isPackageInit ( ) and
171- newAliasFullyQualified = mod .getName ( ) + "." + importMember .getName ( )
169+ not mod .isPackageInit ( ) and base = mod .getName ( )
170+ |
171+ alias .getValue ( ) = importMember and
172+ newAliasFullyQualified = base + "." + alias .getAsname ( )
172173 ) and
173174 (
174175 not hasAllStatement ( mod )
Original file line number Diff line number Diff line change 1- | Django.Views.View~Subclass | find_subclass_test | Member[View] |
1+ | Django.Views.View~Subclass | find_subclass_test | Member[clash2] |
2+ | Django.Views.View~Subclass | find_subclass_test | Member[clash3] |
23| Django.Views.View~Subclass | find_subclass_test | Member[clash] |
34| flask.MethodView~Subclass | find_subclass_test | Member[C] |
45| flask.View~Subclass | find_subclass_test | Member[A] |
78| flask.View~Subclass | find_subclass_test | Member[ViewAliasInTry] |
89| flask.View~Subclass | find_subclass_test | Member[ViewAlias] |
910| flask.View~Subclass | find_subclass_test | Member[View] |
11+ | flask.View~Subclass | find_subclass_test | Member[clash2] |
1012| flask.View~Subclass | find_subclass_test | Member[clash3] |
1113| flask.View~Subclass | find_subclass_test | Member[clash] |
1214| flask.View~Subclass | find_subclass_test | Member[complete_module_alias] |
Original file line number Diff line number Diff line change @@ -21,18 +21,18 @@ class C(flask.views.MethodView):
2121if cond :
2222 from flask .views import View as clash
2323else :
24- from django .views .generic import View as clash # $ SPURIOUS: View=Django.Views.View~Subclass
24+ from django .views .generic import View as clash
2525
2626if cond :
27- from flask .views import View as clash2 # $ MISSING
27+ from flask .views import View as clash2
2828else :
29- from django .views .generic import View as clash2 # $ MISSING
29+ from django .views .generic import View as clash2
3030print (clash2 )
3131
3232if cond :
3333 from flask .views import View as clash3
3434else :
35- from django .views .generic import View as clash3 # $ MISSING
35+ from django .views .generic import View as clash3
3636 print (clash3 )
3737
3838import flask .views as containing_module_alias # $ MISSING
You can’t perform that action at this time.
0 commit comments