DescriptionVM: [Kernel] Cherry-pick from dart-lang/kernel_sdk
Fix a trio of issues in type finalization.
1. We were using is_type_finalized to detect classes that had already been
initialized by DilReader::ReadPreliminaryClass. This state is not
guaranteed by this function, however is_cycle_free is.
2. In the VM, classes that were created type finalized were not marked as
cycle free because finalization did not consider them so cycle-freeness
didn't matter. We would therefore try to initialize these classes with
DilReader::ReadPreliminaryClass and mutate types in them. This causes
them to have unfinalized types but still have is_type_finalized true.
3. Types in top-level procedures were not necessarily finalized. A simple
way to achieve this is to finalize each library's top-level class.
Review URL: https://chromereviews.googleplex.com/520437013 .
R=kmillikin@google.com
Committed: https://github.com/dart-lang/sdk/commit/63af3f56ee9f8ff54c575a76cf6a3b124cac40bb
Patch Set 1 #
Total comments: 2
Patch Set 2 : Remove KernelReader::_bootstrapping flag and related code #Patch Set 3 : Rebased #
Messages
Total messages: 6 (2 generated)
|