SModel for semantic modeling

SModel is a crate for defining subvariants of subvariants of subvariants of semantic symbols used in compiler codebases, typically those that use an unified symbol data type that relies on an arena, allowing circular references through use of a weak reference as the the only tuple value.

It supports:

  • Dynamic dispatch
  • super.f(...)
  • Inheriting RustDoc comments (there is a bug for the #[inheritdoc] attribute, so do not use it for now)
  • Covariant conversions
  • Contravariant conversions

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.