63d042fe0d
When deferred loading was enabled the dynamic dispatch class ID table was incorrectly assigning class IDs to the wrong module. If a contiguous target segment included classes/targets from different modules, all of them were getting assigned to the module of the first class/target in that segment. This was causing spurious NSM exceptions as the necessary rows in the table might not be populated for a dynamic call if the module the segment was assigned to wasn't loaded yet. To fix this we end the segment if the next target does not belong to the same module as the active segment. The new test fails with an NSM exception prior to this fix. Change-Id: I07bc4fdb5a8bff1bfad5fe17f45c8076a965a775 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/502860 Commit-Queue: Nate Biggs <natebiggs@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com>
This directory contains tests of the language and core library implementations. For more information, see https://github.com/dart-lang/sdk/tree/main/docs/Testing.md.