Consider the following:
trait T {
public def f1
private def f2
public static def f3
private static def f4
def m1() {
// Ctrl+Space should propose f1, f2, f3, f4, m1, m2, m3, m4
}
private def m2() {
// Ctrl+Space should propose f1, f2, f3, f4, m1, m2, m3, m4
}
public static def m3() {
// Ctrl+Space should propose f3, f4, m3, m4
}
private static def m4() {
// Ctrl+Space should propose f3, f4, m3, m4
}
}
class C implements T {
def m() {
// Ctrl+Space should propose T__f1, T__f2, T__f3, T__f4, m1, m2?, m3, m4
}
static def sm() {
// Ctrl+Space should propose T__f3, T__f4, m3, m4
}
}
Consider the following:
trait T { public def f1 private def f2 public static def f3 private static def f4 def m1() { // Ctrl+Space should propose f1, f2, f3, f4, m1, m2, m3, m4 } private def m2() { // Ctrl+Space should propose f1, f2, f3, f4, m1, m2, m3, m4 } public static def m3() { // Ctrl+Space should propose f3, f4, m3, m4 } private static def m4() { // Ctrl+Space should propose f3, f4, m3, m4 } } class C implements T { def m() { // Ctrl+Space should propose T__f1, T__f2, T__f3, T__f4, m1, m2?, m3, m4 } static def sm() { // Ctrl+Space should propose T__f3, T__f4, m3, m4 } }