From 6e570b589f61d126fec6062b4ebdce232cd32810 Mon Sep 17 00:00:00 2001 From: "James Helferty (NVIDIA)" Date: Sat, 14 Jun 2025 01:15:52 -0400 Subject: Skip processing import declarations after errors (#7393) * Add test case for missing import attribution Add a test case that imports a non-existent file, followed by a valid file. Tests for absence of a bug where slang reports existent files as non-existent if they're imported after a non-existent file. * Skip processing imports after errors Skip processing additional imports after the first error. This behavior is already observed in Linkage::loadSourceModuleImpl, but since that happenes after import processing already started, a false diagnostic gets generated for a missing import. By hoisting this check out before the import is processed, the diagnostic message for a missing file is no longer erroneously generated. Fixes #6453 * Revert "Skip processing imports after errors" This reverts commit 6b2fef09782414de4c5e017c4ecb5f2affa0c199. * Remove early abort of import processing Partial revert of commit 04f1bad Reverts an early return in Linkage::loadSourceModuleImpl() whenever any error diagnostic message has already been generated. This was causing earlier errors to prevent subsequent imports from succeeding, and was misattributing them to a missing file. Fixes #6453 --------- Co-authored-by: Yong He --- source/slang/slang.cpp | 3 --- 1 file changed, 3 deletions(-) (limited to 'source') diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp index 6ee50251a..2c76f035c 100644 --- a/source/slang/slang.cpp +++ b/source/slang/slang.cpp @@ -4472,9 +4472,6 @@ RefPtr Linkage::loadSourceModuleImpl( if (errorCountAfter != errorCountBefore && !isInLanguageServer()) { _diagnoseErrorInImportedModule(sink); - } - if (errorCountAfter && !isInLanguageServer()) - { // Something went wrong during the parsing, so we should bail out. return nullptr; } -- cgit v1.2.3