-
-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
feat: turn reactive_declaration_non_reactive_property
into a runtime warning
#14192
Conversation
🦋 Changeset detectedLatest commit: 2207b7d The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
preview: https://svelte-dev-git-preview-svelte-14192-svelte.vercel.app/ this is an automated message |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As I commented on that other PR I think this approach makes more sense, so 👍
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
I agree this approach makes sense |
Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
…gh-14111-alternative
…warning fixes #14532 This removes the `reactive_declaration_non_reactive_property` warning altogether. The first version caused many false positives at compile time. The refined runtime version (introduced in #14192) was hoped to fix this, but it turns out we now get loads of false positives at runtime. The ones I've seen essentially revolve around a signal being created while reading or writing (to) something in a reactive statement, but in a matter which is harmless. For example writing to `$$props` or `$$restProps` (like `$: { if ($$restProps.foo) $$restProps.bar = 'x' }`) creates a new signal under the hood, as the props now temporarily can get out of sync, and we need a backing signal for that. For this we call the `prop` function, which in turn creates several deriveds and may also read from user-land signals that were not read previously - in other words, it's not possible to fix the problem by marking all internal signals (which would be a very very tedious undertaking). The potential benefits of this warning are vastly outnumbered by the false positives it causes, so we should just remove it.
…warning (#14663) fixes #14532 This removes the `reactive_declaration_non_reactive_property` warning altogether. The first version caused many false positives at compile time. The refined runtime version (introduced in #14192) was hoped to fix this, but it turns out we now get loads of false positives at runtime.
Warnings from enums were fixed in sveltejs/svelte#14192
Warnings from enums were fixed in sveltejs/svelte#14192
Warnings from enums were fixed in sveltejs/svelte#14192
Alternative to #14111. Instead of a compiler warning, we can have a runtime warning for cases where 'invisible' reactive state is read inside a
$:
statement. The message could probably be improved and it might be nice to have a detailed example for the docs, but putting this up just as a suggestion for nowBefore submitting the PR, please make sure you do the following
feat:
,fix:
,chore:
, ordocs:
.Tests and linting
pnpm test
and lint the project withpnpm lint