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

Fix issues with nest association conflicting with regular association #250

Merged
merged 7 commits into from
Sep 28, 2023

Conversation

dburgener
Copy link
Owner

No description provided.

There are three cases here:

* function declarations are handled via derive.  The existing behavior
could be wrong in some cases, such as the presence of noderive
* type declarations are illegal inside resources
* rules are handled via normal Cascade inheritance mechanisms

So the copying is mostly unneeded, and wrong in the noderive case.
Additionally, it makes multiple inheritance challenging.
Copy link
Collaborator

@matt-sheets matt-sheets left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Initial review. I will try to go over it again to understand the logic better.

src/compile.rs Show resolved Hide resolved
src/compile.rs Outdated Show resolved Hide resolved
src/compile.rs Outdated Show resolved Hide resolved
src/compile.rs Outdated Show resolved Hide resolved
src/internal_rep.rs Outdated Show resolved Hide resolved
src/internal_rep.rs Outdated Show resolved Hide resolved
src/compile.rs Outdated Show resolved Hide resolved
parts seperately

The motivation here comes from combining similar associations, such as
two different nested associations of the same resource from different
parents, or a nested combined with an annotated association.  We need to
treat associations of the same resource as fundamentally the same, but
having multiple parents, which are the different specific resources
associated.

At the time we are setting up association, there is always one resource
that has already been added to the TypeMap for each association.  For
annotated associations, this is an explicitly declared resource of the
resource name.  For nested ones, the nested declaration declares a
"dom.res" resource.  When we later process annotations, we don't care
whether "res" exists in this case.  So we track these "real" resources,
and build our annotations based on them.
I don't know.  I'm probably reintroducing a bug here, but it passes
tests, so *shrug*?
@dburgener dburgener merged commit a29728f into main Sep 28, 2023
11 checks passed
@dburgener dburgener deleted the dburgener/fix-nest-associate branch September 28, 2023 17:45
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