qwik icon indicating copy to clipboard operation
qwik copied to clipboard

Trivial constants sometimes misdetected as mutable

Open kylecordes opened this issue 2 years ago • 4 comments

Qwik Version

0.0.33

Operating System (or Browser)

OSX

Node Version (if applicable)

16

Which component is affected?

Qwik Runtime

Expected Behaviour

Mutable error emitted only on data that changes

Actual Behaviour

In a component source file, define a global constant.

export const foo = [];

In the component, bind that to something

blah={foo}

No other code refers to this constant, and the child component does not use the prop at all.

In some cases (maybe only "production" builds?), an error nonetheless occurs, stating that mutable() should have been used.

It displays a before and after value, visually identical.

Additional Information

I will hopefully isolate this with a minimum repro in the future; but I entered it now in case someone spots this and knows what is wrong.

kylecordes avatar Jun 30 '22 03:06 kylecordes

maybe, instead of a repo, you could try reproduce in the playground! https://qwik.builder.io/playground

Not sure how this bug could be happening…

manucorporat avatar Jun 30 '22 07:06 manucorporat

We're in luck, it reproduces in the playground:

https://qwik.builder.io/playground#version=0.0.33&buildMode=development&entryStrategy=hook&files=JTVCJTdCJTIycGF0aCUyMiUzQSUyMiUyRmFwcC50c3glMjIlMkMlMjJjb2RlJTIyJTNBJTIyaW1wb3J0JTIwJTdCJTIwY29tcG9uZW50JTI0JTJDJTIwdXNlU3RvcmUlMkMlMjBtdXRhYmxlJTIwJTdEJTIwZnJvbSUyMCclNDBidWlsZGVyLmlvJTJGcXdpayclM0IlNUNuJTVDbmV4cG9ydCUyMGNvbnN0JTIwSGVsbG8lMjAlM0QlMjBjb21wb25lbnQlMjQoKHByb3BzJTNBJTIwYW55KSUyMCUzRCUzRSUyMCU3QiU1Q24lMjAlMjByZXR1cm4lMjAlM0NkaXYlM0UlNUNuJTIwJTIwJTIwJTNDaDElM0UlN0Jwcm9wcy5uYW1lJTdEJTIwYWdlJTIwJTdCcHJvcHMuYWdlJTdEJTNDJTJGaDElM0UlNUNuJTIwJTIwJTIwJTdCcHJvcHMuaG9iYmllcy5tYXAoaCUyMCUzRCUzRSUyMCUzQ3AlM0UlN0JoJTdEJTNDJTJGcCUzRSklN0QlNUNuJTIwJTIwJTIwJTNDJTJGZGl2JTNFJTVDbiU3RCklM0IlNUNuJTVDbmV4cG9ydCUyMGNvbnN0JTIwaG9iYmllcyUyMCUzRCUyMCU1QiU1QyUyMmNhcmRzJTVDJTIyJTJDJTIwJTVDJTIyZ29sZiU1QyUyMiU1RCUzQiU1Q24lNUNuZXhwb3J0JTIwY29uc3QlMjBBcHAlMjAlM0QlMjBjb21wb25lbnQlMjQoKCklMjAlM0QlM0UlMjAlN0IlNUNuJTIwJTIwY29uc3QlMjBzdCUyMCUzRCUyMHVzZVN0b3JlKCU3QmFnZSUzQSUyMDMyJTdEKSU1Q24lMjAlMjByZXR1cm4lMjAlM0NkaXYlM0UlNUNuJTIwJTIwJTIwJTIwJTNDcCUzRUhlbGxvJTIwUXdpayUzQyUyRnAlM0UlNUNuJTIwJTIwJTIwJTIwJTNDSGVsbG8lMjBuYW1lJTNEJTdCJTVDJTIyQm9iJTVDJTIyJTdEJTIwYWdlJTNEJTdCbXV0YWJsZShzdC5hZ2UpJTdEJTIwaG9iYmllcyUzRCU3QmhvYmJpZXMlN0QlM0UlM0MlMkZIZWxsbyUzRSU1Q24lMjAlMjAlMjAlMjAlM0NidXR0b24lMjBvbkNsaWNrJTI0JTNEJTdCKCklMjAlM0QlM0UlMjBzdC5hZ2UlMkIlMkIlN0QlM0V0aW1lJTIwcGFzc2VzJTNDJTJGYnV0dG9uJTNFJTVDbiUyMCUyMCUyMCUzQyUyRmRpdiUzRSUzQiU1Q24lN0QpJTNCJTVDbiU1Q24lMjIlN0QlMkMlN0IlMjJwYXRoJTIyJTNBJTIyJTJGZW50cnkuc2VydmVyLnRzeCUyMiUyQyUyMmNvZGUlMjIlM0ElMjJpbXBvcnQlMjAlN0IlMjByZW5kZXJUb1N0cmluZyUyQyUyMFJlbmRlck9wdGlvbnMlMjAlN0QlMjBmcm9tJTIwJyU0MGJ1aWxkZXIuaW8lMkZxd2lrJTJGc2VydmVyJyUzQiU1Q25pbXBvcnQlMjAlN0IlMjBSb290JTIwJTdEJTIwZnJvbSUyMCcuJTJGcm9vdCclM0IlNUNuJTVDbmV4cG9ydCUyMGZ1bmN0aW9uJTIwcmVuZGVyKG9wdHMlM0ElMjBSZW5kZXJPcHRpb25zKSUyMCU3QiU1Q24lMjAlMjByZXR1cm4lMjByZW5kZXJUb1N0cmluZyglM0NSb290JTIwJTJGJTNFJTJDJTIwb3B0cyklM0IlNUNuJTdEJTVDbiUyMiU3RCUyQyU3QiUyMnBhdGglMjIlM0ElMjIlMkZyb290LnRzeCUyMiUyQyUyMmNvZGUlMjIlM0ElMjJpbXBvcnQlMjAlN0IlMjBBcHAlMjAlN0QlMjBmcm9tJTIwJy4lMkZhcHAnJTNCJTVDbiU1Q25leHBvcnQlMjBjb25zdCUyMFJvb3QlMjAlM0QlMjAoKSUyMCUzRCUzRSUyMCU3QiU1Q24lMjAlMjByZXR1cm4lMjAoJTVDbiUyMCUyMCUyMCUyMCUzQ2h0bWwlM0UlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTNDaGVhZCUzRSU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0aXRsZSUzRUhlbGxvJTIwUXdpayUzQyUyRnRpdGxlJTNFJTVDbiUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmhlYWQlM0UlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTNDYm9keSUzRSU1Q24lMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NBcHAlMjAlMkYlM0UlNUNuJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGYm9keSUzRSU1Q24lMjAlMjAlMjAlMjAlM0MlMkZodG1sJTNFJTVDbiUyMCUyMCklM0IlNUNuJTdEJTNCJTVDbiUyMiU3RCU1RA%3D%3D

kylecordes avatar Jun 30 '22 16:06 kylecordes

This might turn out to be array-specific, maybe arrays are always detected as a mutation even with neither the identity or state of the array changes.

kylecordes avatar Jun 30 '22 16:06 kylecordes

@manucorporat This appears to work on latest now that mutable has been deprecated.

nnelgxorz avatar Oct 23 '22 03:10 nnelgxorz

@shairez @manucorporat @adamdbradley 🔝sry for pinging you again 👼 what @nnelgxorz said: on latest version mutation is deprecated therefor this issue won't exist any longer.

zanettin avatar Oct 29 '22 12:10 zanettin

Thanks @zanettin for the triaging!

Closing this for now, feel free to re-open if it's still relevant

shairez avatar Oct 29 '22 14:10 shairez