@@ -49,7 +49,19 @@ public bool HandleImport(ImportStatement node) {
4949 return false ;
5050 }
5151
52- private void FindModule ( ModuleName moduleImportExpression , NameExpression asNameExpression , bool forceAbsolute ,
52+ private void HandleImport ( ModuleName moduleImportExpression , NameExpression asNameExpression , bool forceAbsolute ) {
53+ FindModuleByAbsoluteName ( moduleImportExpression , asNameExpression , forceAbsolute , out var firstModule , out var lastModule , out var importNames , out _ ) ;
54+ // "import fob.oar.baz as baz" is handled as baz = import_module('fob.oar.baz')
55+ // "import fob.oar.baz" is handled as fob = import_module('fob')
56+ if ( ! string . IsNullOrEmpty ( asNameExpression ? . Name ) && lastModule != default ) {
57+ Eval . DeclareVariable ( asNameExpression . Name , lastModule , VariableSource . Import , asNameExpression ) ;
58+ } else if ( firstModule != default && ! string . IsNullOrEmpty ( importNames [ 0 ] ) ) {
59+ var firstName = moduleImportExpression . Names [ 0 ] ;
60+ Eval . DeclareVariable ( importNames [ 0 ] , firstModule , VariableSource . Import , firstName ) ;
61+ }
62+ }
63+
64+ private void FindModuleByAbsoluteName ( ModuleName moduleImportExpression , NameExpression asNameExpression , bool forceAbsolute ,
5365 out PythonVariableModule firstModule , out PythonVariableModule lastModule , out ImmutableArray < string > importNames , out IImportSearchResult imports ) {
5466 // "import fob.oar.baz" means
5567 // import_module('fob')
@@ -73,18 +85,6 @@ private void FindModule(ModuleName moduleImportExpression, NameExpression asName
7385 }
7486 }
7587
76- private void HandleImport ( ModuleName moduleImportExpression , NameExpression asNameExpression , bool forceAbsolute ) {
77- FindModule ( moduleImportExpression , asNameExpression , forceAbsolute , out var firstModule , out var lastModule , out var importNames , out _ ) ;
78- // "import fob.oar.baz as baz" is handled as baz = import_module('fob.oar.baz')
79- // "import fob.oar.baz" is handled as fob = import_module('fob')
80- if ( ! string . IsNullOrEmpty ( asNameExpression ? . Name ) && lastModule != default ) {
81- Eval . DeclareVariable ( asNameExpression . Name , lastModule , VariableSource . Import , asNameExpression ) ;
82- } else if ( firstModule != default && ! string . IsNullOrEmpty ( importNames [ 0 ] ) ) {
83- var firstName = moduleImportExpression . Names [ 0 ] ;
84- Eval . DeclareVariable ( importNames [ 0 ] , firstModule , VariableSource . Import , firstName ) ;
85- }
86- }
87-
8888 private bool HandleImportSearchResult ( in IImportSearchResult imports , in PythonVariableModule parent , in NameExpression asNameExpression , in Node location , out PythonVariableModule variableModule ) {
8989 switch ( imports ) {
9090 case ModuleImport moduleImport when Module . ModuleType == ModuleType . Stub && moduleImport . FullName == Module . Name :
0 commit comments