[K/N] Implement new class initialization order.#6517
Open
Alexander Shabalin (projedi) wants to merge 1 commit into
Open
[K/N] Implement new class initialization order.#6517Alexander Shabalin (projedi) wants to merge 1 commit into
Alexander Shabalin (projedi) wants to merge 1 commit into
Conversation
Code Owners
|
| @@ -99,6 +126,52 @@ internal class StaticInitializersLowering(val context: Context) : FileLoweringPa | |||
|
|
|||
| val builder = context.irBuiltIns.createIrBuilder((container as IrSymbolOwner).symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET) | |||
|
|
|||
| if (container is IrClass && !container.isInterface && container.konanLibrary?.newCompanionInitializationEnabled == true) { | |||
Member
Author
There was a problem hiding this comment.
Essentially cherry-picked 49a2c2d#diff-e72d2e1b8829b3e48e77912ef0aaca57d674684abb26a849e7cc81a6ee9cd2f7
When `CompanionBlocksAndExtensions` language feature is enabled, the classes should follow JVM-like initialization scheme: - first, the superclass should be initialized - next, all superinterfaces with at least one non-static non-abstract method should be (recursively) initialized in the declaration order - initialization of `companion` blocks and `companion object` should follow program order ^KT-87412
8d3b309 to
aa45e5c
Compare
| @@ -0,0 +1,348 @@ | |||
| // See companionInitOrderWithSuperclass for the common treatment. | |||
| // TARGET_BACKEND: NATIVE | |||
| // LANGUAGE: +CompanionBlocksAndExtensions | |||
Member
Author
There was a problem hiding this comment.
This copy-pasting is super silly, but I don't know how to enable language feature only for the single backend.
Member
Author
|
/dry-run |
|
THIS IS A DRY RUN Quality gate is triggered at https://buildserver.labs.intellij.net/build/992929408 — use this link to get full insight. Quality gate was triggered with the following revisions:
Quality gate failed. See https://buildserver.labs.intellij.net/build/992929408 to get full insight. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When
CompanionBlocksAndExtensionslanguage feature is enabled, the classes should follow JVM-like initialization scheme:companionblocks andcompanion objectshould follow program order^KT-87412