Fix @extern functions being mistakenly verified#1690
Conversation
|
|
Co-authored-by: vkuncak <3809719+vkuncak@users.noreply.github.com>
Co-authored-by: vkuncak <3809719+vkuncak@users.noreply.github.com>
Co-authored-by: vkuncak <3809719+vkuncak@users.noreply.github.com>
|
@copilot This is not the solution I would expect at this stage. I would expect that we should not need to check explicitly for the extern annotation, as the bug would otherwise always manifest. Yet the bug happens only for certain number of conjuncts in |
…aque functions Co-authored-by: vkuncak <3809719+vkuncak@users.noreply.github.com>
You're right. The proper fix is in Fixed in fc53f03 - reverted the |
DropVCsflag not added toChooseexpressions inOpaqueChooseInjectorDropVCsflag toValDefinOpaqueChooseInjector.scalaVerificationComponent.scalaSummary
Fixed an issue where
@externfunctions were being mistakenly verified. The root cause was thatOpaqueChooseInjectorcreatesChooseexpressions for extern/opaque functions but didn't add theDropVCsflag to theValDef. WhenChooseEncoderprocesses theseChooseexpressions, it generates assertion VCs unlessDropVCsis present (see lines 79-86 inChooseEncoder.scala).Changes
OpaqueChooseInjector.scalato addDropVCsflag to theValDefwhen creatingChooseexpressions, consistent with howChooseInjector.scalahandles similar cases (line 40).VerificationComponent.scalaOriginal prompt
@externfunctions are mistakenly verified in some cases #1689✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.