5.2.3.6 Circular Module Dependencies

Static Semantics.

  • Circular reference between modules that involving Const Declarations (section 5.2.3.2), Enum Declarations (section 5.2.3.4), UDT Declarations (section 5.2.3.3), Implements Directive (section 5.2.4.2), or Event Declarations (section 5.2.4.3) are not allowed.

  • Any circular dependency among modules that includes any of these declaration forms is an illegal circularity, even if the dependency chain includes other forms of declaration.

  • Circular dependency chains among modules that do not include any of these specific declaration forms are allowed.