Merge pull request #2418 from KLayout/bugfix/issue-2416

Fixing bug #2416 (two-layer DRC check without merged first input prod…
This commit is contained in:
Matthias Köfferlein
2026-08-14 17:59:24 +02:00
committed by GitHub
7 changed files with 48 additions and 2 deletions
+6 -1
View File
@@ -1237,7 +1237,12 @@ AsIfFlatRegion::run_check (db::edge_relation_type rel, bool different_polygons,
different_polygons = true;
}
bool needs_merged_primary = (! other && different_polygons) || options.needs_merged ();
// in some cases we need merged primary polygons:
// 1.) isolated check (same layer, but different polygons)
// 2.) options need merged edges (projection limits, rectangle filter, opposite filter)
// 3.) prop_ne constraint - in that case, merge must not be applied internally after properties have been separated
bool needs_merged_primary = (! other && different_polygons) || options.needs_merged () || pc_always_different (options.prop_constraint);
bool primary_is_merged = is_merged ();
db::RegionIterator polygons;
+6 -1
View File
@@ -2405,7 +2405,12 @@ DeepRegion::run_check (db::edge_relation_type rel, bool different_polygons, cons
// primary input
bool needs_merged_primary = (! other_deep && different_polygons) || options.needs_merged ();
// in some cases we need merged primary polygons:
// 1.) isolated check (same layer, but different polygons)
// 2.) options need merged edges (projection limits, rectangle filter, opposite filter)
// 3.) prop_ne constraint - in that case, merge must not be applied internally after properties have been separated
bool needs_merged_primary = (! other_deep && different_polygons) || options.needs_merged () || pc_always_different (options.prop_constraint);
bool primary_is_merged = false;
db::DeepLayer polygons;
+11
View File
@@ -2143,3 +2143,14 @@ TEST(151d_edges_from_region_with_properties)
{
run_test (_this, "151", true);
}
// issue #2416
TEST(152_sep_with_props)
{
run_test (_this, "152", false);
}
TEST(152d_sep_with_props)
{
run_test (_this, "152", true);
}