FIR: set & use dispatch receiver for q. access with super reference

This commit is contained in:
Mikhail Glukhikh
2020-05-06 12:46:28 +03:00
parent b058ca635c
commit 38fc4d0f1f
15 changed files with 45 additions and 82 deletions
@@ -25,8 +25,8 @@ FILE: abstractSuperCall.kt
public abstract fun f(): R|kotlin/Unit|
public final fun t(): R|kotlin/Unit| {
super<R|C|>.R|/C.h|()
super<R|C|>.R|/C.x|
this@R|/A|.super<R|C|>.R|/C.h|()
this@R|/A|.super<R|C|>.R|/C.x|
}
}
@@ -39,10 +39,10 @@ FILE: abstractSuperCall.kt
}
public final fun g(): R|kotlin/Unit| {
super<R|A|>.R|/A.f|()
super<R|A|>.R|/A.t|()
super<R|A|>.R|/A.x|
super<R|A|>.R|/A.y|
this@R|/B|.super<R|A|>.R|/A.f|()
this@R|/B|.super<R|A|>.R|/A.t|()
this@R|/B|.super<R|A|>.R|/A.x|
this@R|/B|.super<R|A|>.R|/A.y|
}
}
@@ -52,10 +52,10 @@ FILE: abstractSuperCall.kt
}
public final fun r(): R|kotlin/Unit| {
super<R|A|>.R|/A.f|()
super<R|A|>.R|/A.t|()
super<R|A|>.R|/A.x|
super<R|A|>.R|/A.y|
this@R|/J|.super<R|A|>.R|/A.f|()
this@R|/J|.super<R|A|>.R|/A.t|()
this@R|/J|.super<R|A|>.R|/A.x|
this@R|/J|.super<R|A|>.R|/A.y|
}
}
@@ -14,8 +14,8 @@ FILE: notASupertype.kt
}
public final fun g(): R|kotlin/Unit| {
super<R|kotlin/String|>.<Unresolved name: f>#()
super<R|A|>.R|/A.f|()
this@R|/B|.super<R|kotlin/String|>.<Unresolved name: f>#()
this@R|/B|.super<R|A|>.R|/A.f|()
}
}
@@ -23,11 +23,11 @@ FILE: qualifiedSupertypeExtendedByOtherSupertype.kt
}
public final fun test(): R|kotlin/Unit| {
super<R|IBase|>.R|/IBase.foo|()
super<R|IBase|>.R|/IBase.bar|()
super<R|IDerived|>.R|/IDerived.foo|()
super<R|IDerived|>.R|/IBase.bar|()
super<R|IDerived|>.R|/IDerived.qux|()
this@R|/Test|.super<R|IBase|>.R|/IBase.foo|()
this@R|/Test|.super<R|IBase|>.R|/IBase.bar|()
this@R|/Test|.super<R|IDerived|>.R|/IDerived.foo|()
this@R|/Test|.super<R|IDerived|>.R|/IBase.bar|()
this@R|/Test|.super<R|IDerived|>.R|/IDerived.qux|()
}
}
@@ -37,13 +37,13 @@ FILE: qualifiedSupertypeExtendedByOtherSupertype.kt
}
public final fun test(): R|kotlin/Unit| {
super<R|IBase|>.R|/IBase.foo|()
super<R|IBase|>.R|/IBase.bar|()
super<R|AliasedIBase|>.R|/IBase.foo|()
super<R|AliasedIBase|>.R|/IBase.bar|()
super<R|IDerived|>.R|/IDerived.foo|()
super<R|IDerived|>.R|/IBase.bar|()
super<R|IDerived|>.R|/IDerived.qux|()
this@R|/Test2|.super<R|IBase|>.R|/IBase.foo|()
this@R|/Test2|.super<R|IBase|>.R|/IBase.bar|()
this@R|/Test2|.super<R|AliasedIBase|>.R|/IBase.foo|()
this@R|/Test2|.super<R|AliasedIBase|>.R|/IBase.bar|()
this@R|/Test2|.super<R|IDerived|>.R|/IDerived.foo|()
this@R|/Test2|.super<R|IDerived|>.R|/IBase.bar|()
this@R|/Test2|.super<R|IDerived|>.R|/IDerived.qux|()
}
}
@@ -10,7 +10,7 @@ FILE: superclassNotAccessibleFromInterface.kt
}
public abstract interface ATrait : R|A| {
public open override fun foo(): R|kotlin/Unit| {
super<R|A|>.R|/A.foo|()
this@R|/ATrait|.super<R|A|>.R|/A.foo|()
}
}