Make isView safe outside of Builder context (backport #4228) #4229
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.
Contemplating views in naming (#4222) exposed a longstanding bug that I patched out recently in #4147. Basically
isView
does not work outside of Builder contexts. Now it is safe.We do have lots of tests for things like literals outside of Builder contexts, but they didn't trigger this because
ViewParent
is alazy val
and thus if any Chisel elaboration has occurred on the same thread, then the problem doesn't manifest. Thus this "test" looks very strange, but by virtue of defining a literal assigned to a val first thing in a ScalaTest spec, it ensures no Chisel elaboration has run before when this line executes, and the naming plugin + #4222 ensures that this value is checked if it's a view.Contributor Checklist
docs/src
?Type of Improvement
Desired Merge Strategy
Release Notes
Reviewer Checklist (only modified by reviewer)
3.6.x
,5.x
, or6.x
depending on impact, API modification or big change:7.0
)?Enable auto-merge (squash)
, clean up the commit message, and label withPlease Merge
.Create a merge commit
.This is an automatic backport of pull request #4228 done by [Mergify](https://mergify.com).