Skip to main content

same_specialization

Function same_specialization 

Source
pub fn same_specialization(a: Type<'_>, b: Type<'_>) -> bool
Expand description

The VERIFY ground truth for class-template dedup (this module’s doc comment): two specializations are the same template iff they are literally the same ClassType symbol. Never a structural re-derivation (unlike dedup.rs’s instance_body_has_same_type) — slang’s own specialization cache already guarantees pointer identity for a genuinely matching binding, so re-deriving “same shape” here would be strictly weaker, not stronger, than just comparing identity directly. Exposed (not just an internal helper of assign_class_template_ids) so a test can drive hash_then_verify_dedup directly with a forced, fabricated ClassTemplateKey collision between two genuinely different classes — the same “bypass the real hash, exercise only the verify step” shape netlist_dedup.rs’s own hash_bucket_collision_between_different_modules_is_rejected_by_pairwise_oracle uses for module Templates.