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.
If you use
render
on a component and then callthis.set
, you get an assertion:But that's not true and hasn't been since the introduction of components with access to lexical scope. For example:
My example uses a workaround for emberjs/babel-plugin-ember-template-compilation#61, but we have open PRs fixing that issue in which case this would also just work directly:
Critically,
@embroider/template-tag-codemod
can produce these situations entirely automatically, as it upgrades any existing tests to template tag. So whether you think it's good for new code to usethis.set
in tests, as we codemod all templates to template tag, existing tests that usethis.set
are going to hit this assertion unnecessarily.