Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introducing ref_typespec, parallel to ref_obj for referencing typespecs #3868

Merged
merged 2 commits into from
Sep 20, 2023

Conversation

hs-apotell
Copy link
Collaborator

Introducing ref_typespec, parallel to ref_obj for referencing typespecs

scope::Typespecs are cloned from non-elaborated tree to the elaborated tree. However, at the moment, this collection doesn't have all the typespecs in the non-elaborated tree.

This solves a few different problems -

  • Avoids too many duplicates in the elaborated tree.
  • For functions like $size and $bits, the parameter binding doesn't work because the parameter is a type and not an object. ref_typespec solves that binding problem.
  • ref_typespec will hold the type location information in parameter declaration.

Known Issues -

  • Need to collect all typespecs in the scope subtree to populate scope::Typespecs
  • Though the typespecs are cloned, elaborated tree is still using the ones from the non-elaborated tree. The tree is still complete but typespecs are crossing the boundary between elaborated and non-elaborated. Need to fix this during binding.

scope::Typespecs are cloned from non-elaborated tree to the elaborated tree.
However, at the moment, this collection doesn't have all the typespecs in the
non-elaborated tree.

This solves a few different problems -

* Avoids too many duplicates in the elaborated tree.
* For functions like $size and $bits, the parameter binding doesn't work
  because the parameter is a type and not an object. ref_typespec solves
  that binding problem.
* ref_typespec will hold the type location information in parameter
  declaration.

Known Issues -

* Need to collect all typespecs in the scope subtree to populate
  scope::Typespecs
* Though the typespecs are cloned, elaborated tree is still using the ones
  from the non-elaborated tree. The tree is still complete but typespecs are
  crossing the boundary between elaborated and non-elaborated. Need to fix
  this during binding.
@hs-apotell
Copy link
Collaborator Author

Here's the PR for the plugin - chipsalliance/synlig#2000

And here's a successful build with this PR and the plugin PR - https://github.com/chipsalliance/Surelog/actions/runs/6252535173

@alaindargelas alaindargelas merged commit 7cb11f2 into chipsalliance:master Sep 20, 2023
60 of 61 checks passed
@hs-apotell hs-apotell deleted the rtts branch September 21, 2023 05:18
kgugala added a commit to chipsalliance/synlig that referenced this pull request Sep 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants