Conversation

paoloricciuti

Closes #16164

We can't set everywhere within with_parent otherwise if it's the first time we are reading a derived it could look like we are setting state in a derived (which you are not).

Before submitting the PR, please make sure you do the following

  • It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://.com/sveltejs/rfcs
  • Prefix your PR title with feat:, fix:, chore:, or docs:.
  • This message body should clearly illustrate what problems it solves.
  • Ideally, include a test that fails without this PR but passes with it.
  • If this PR changes code within packages/svelte/src, add a changeset (npx changeset).

Tests and linting

  • Run the tests with pnpm test and lint the project with pnpm lint

@changeset-botchangeset-bot

🦋 Changeset detected

Latest commit: 4f7d6a8

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
NameType
svelte

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

@svelte-docs-bot

@github-actionsGitHub Actions

Playground

pnpm add https://pkg.pr.new/svelte@16176

@7nik

shouldn't {my_derived.example} update when data.example changes?

All the changes are wiped by

$effect(() => {
		my_derived.example = 'Bar'
	});

that confirms $inspect:

update { example: "Examp" }
update { example: "Bar" }
update { example: "Exam" }
update { example: "Bar" }
update { example: "Examp" }
update { example: "Bar" }

@paoloricciuti

Duh obviously...let me grab a coffe 😄

@dummdidumm

with_parent in general is flawed, don't think we can keep its current version. Also see #15870 (comment)

@paoloricciuti

Mh that's interesting...I'll try to see what it would take to "fix it"

@dummdidumm

I think the real fix - and I've talked with Rich/Elliott about this and they agree - is to revert (part of) #15553 and instead fix the specific issue it was closing another way. With the possiblity to declare state fields with $state etc in the constructor much of the need for it is gone anyway.

Choose a reason for hiding this comment

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

Will merge this anyway in the meantime since this is valid 👍

@dummdidummdummdidumm merged commit 7e58885 into main Jun 16, 2025
14 checks passed
@dummdidummdummdidumm deleted the proxy-set-with-parent branch June 16, 2025 15:49
@github-actions-actions bot mentioned this pull request Jun 16, 2025
Sign up for free to join this conversation on . Already have an account? Sign in to comment
None yet
None yet

Successfully merging this pull request may close these issues.

state_unsafe_mutation when mutating unused $state wrapped in a $derived