Forbid anonymous enum variants in GraphQLMutationRoot.
#4657
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
The
MutationRootimplementation can be difficult to write down (but we have 4 examples doing that in theexamplesdirectory). Therefore, we have a traitGraphQLMutationRootand a derive macro that allows implementing theMutationRootmore easily.That macro represents the choices that we think are the right ones for smart contract writers. For example, we do not allow structs by design. It has recently emerged that
field0is not a favored design. Therefore, it makes full sense that the macro should not allow it.Note that we do not force programmers to use the
GraphQLMutationRoot. We also do not force them to useGraphQL. However, theGraphQLMutationRootthat we provide should represent the choices that we think are the right ones.Proposal
Explicitly, forbid that check.
Test Plan
The CI.
Added a test for testing that this scenario is not allowed.
Release Plan
Safe to backport to the TestNet / DevNet.
Links
None.