fix(domain-and-input-skeleton): locate extra instance diagnostic
This commit is contained in:
@@ -181,10 +181,14 @@ private:
|
||||
|
||||
active_assembly_ = &*deck_.assembly;
|
||||
if (active_assembly_->instances.size() != 1U) {
|
||||
const SourceLocation& source =
|
||||
active_assembly_->instances.size() > 1U
|
||||
? active_assembly_->instances[1].source
|
||||
: active_assembly_->source;
|
||||
add_error(
|
||||
"abaqus.semantic.instance_count",
|
||||
"Phase 1 requires exactly one Instance.",
|
||||
active_assembly_->source);
|
||||
source);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -256,7 +256,13 @@ TEST(ActiveInstance, RejectsMultipleInstances) {
|
||||
const auto result = parse_and_map(input.path());
|
||||
|
||||
EXPECT_FALSE(result.domain.has_value());
|
||||
EXPECT_TRUE(has_diagnostic(result, "abaqus.semantic.instance_count"));
|
||||
const auto diagnostic = std::ranges::find(
|
||||
result.diagnostics,
|
||||
std::string_view{"abaqus.semantic.instance_count"},
|
||||
&fesa::Diagnostic::code);
|
||||
ASSERT_NE(diagnostic, result.diagnostics.end());
|
||||
ASSERT_TRUE(diagnostic->source.has_value());
|
||||
EXPECT_EQ(diagnostic->source->line, 6U);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
Reference in New Issue
Block a user