ceylon-ide-eclipse
ceylon-ide-eclipse copied to clipboard
`Quick fix` loop for formal member classes with circular inheritance
Start with this code
interface Foo1{
shared formal class Bar1() satisfies Foo2{}
}
interface Foo2{
shared formal class Bar2() satisfies Foo1{}
}
Then add
void run(){
object foo1 satisfies Foo1{
}
}
Apply the quick fix refine formal member
, you get
void run(){
object foo1 satisfies Foo1{
shared actual class Bar1()
extends super.Bar1() {}
}
}
And now keep on applying refine formal member
you quickly end up with
void run(){
object foo1 satisfies Foo1{
shared actual class Bar1()
extends super.Bar1() {
shared actual class Bar2()
extends super.Bar2() {
shared actual class Bar1()
extends super.Bar1() {
shared actual class Bar2()
extends super.Bar2() {
shared actual class Bar1()
extends super.Bar1() {}
}
}
}
}
}
}
@gavinking I think I found a name for this code generation scheme : how about quick fix metaprogramming
? ;)
haha :-)