@@ -1123,6 +1123,7 @@ def _import(
1123
1123
top_level : bool = False ,
1124
1124
source : Optional [str ] = None ,
1125
1125
parent_import : Optional [Import ] = None ,
1126
+ parent_source : Optional [str ] = None ,
1126
1127
) -> Optional [LibraryEntry ]:
1127
1128
result : Optional [LibraryEntry ] = None
1128
1129
try :
@@ -1304,6 +1305,26 @@ def _import(
1304
1305
source = DIAGNOSTICS_SOURCE_NAME ,
1305
1306
code = type (e ).__qualname__ ,
1306
1307
)
1308
+ elif parent_import is not None :
1309
+ self .append_diagnostics (
1310
+ range = parent_import .range ,
1311
+ message = "Import definition contains errors." ,
1312
+ severity = DiagnosticSeverity .ERROR ,
1313
+ source = DIAGNOSTICS_SOURCE_NAME ,
1314
+ code = Error .IMPORT_CONTAINS_ERRORS ,
1315
+ related_information = (
1316
+ (
1317
+ [
1318
+ DiagnosticRelatedInformation (
1319
+ location = Location (str (Uri .from_path (parent_source )), value .range ),
1320
+ message = str (e ),
1321
+ ),
1322
+ ]
1323
+ )
1324
+ if parent_source
1325
+ else None
1326
+ ),
1327
+ )
1307
1328
finally :
1308
1329
self ._reset_global_variables ()
1309
1330
@@ -1318,6 +1339,7 @@ def _import_imports(
1318
1339
variables : Optional [Dict [str , Any ]] = None ,
1319
1340
source : Optional [str ] = None ,
1320
1341
parent_import : Optional [Import ] = None ,
1342
+ parent_source : Optional [str ] = None ,
1321
1343
depth : int = 0 ,
1322
1344
) -> Optional [Dict [str , Any ]]:
1323
1345
@@ -1335,6 +1357,7 @@ def _import_imports(
1335
1357
top_level = top_level ,
1336
1358
source = source ,
1337
1359
parent_import = parent_import ,
1360
+ parent_source = parent_source if parent_source else source ,
1338
1361
)
1339
1362
1340
1363
if entry is not None :
@@ -1358,6 +1381,7 @@ def _import_imports(
1358
1381
variables = variables ,
1359
1382
source = entry .library_doc .source ,
1360
1383
parent_import = imp if top_level else parent_import ,
1384
+ parent_source = parent_source if top_level else source ,
1361
1385
depth = depth + 1 ,
1362
1386
)
1363
1387
except (SystemExit , KeyboardInterrupt ):
0 commit comments