mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-90896 complete properties from base class which have fields
This commit is contained in:
+11
-9
@@ -341,14 +341,16 @@ public class CompleteReferenceExpression {
|
||||
}
|
||||
|
||||
private static Set<String> addAllRestrictedProperties(GrReferenceExpression place) {
|
||||
if (place.getQualifier() != null) {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
|
||||
Set<String> propertyNames = new HashSet<String>();
|
||||
if (place.getQualifier()==null) {
|
||||
for (GrTypeDefinition containingClass = PsiTreeUtil.getParentOfType(place, GrTypeDefinition.class);
|
||||
containingClass != null;
|
||||
containingClass = PsiTreeUtil.getParentOfType(containingClass, GrTypeDefinition.class)) {
|
||||
for (PsiField field : containingClass.getAllFields()) {
|
||||
propertyNames.add(field.getName());
|
||||
}
|
||||
for (GrTypeDefinition containingClass = PsiTreeUtil.getParentOfType(place, GrTypeDefinition.class);
|
||||
containingClass != null;
|
||||
containingClass = PsiTreeUtil.getParentOfType(containingClass, GrTypeDefinition.class)) {
|
||||
for (PsiField field : containingClass.getFields()) {
|
||||
propertyNames.add(field.getName());
|
||||
}
|
||||
}
|
||||
return propertyNames;
|
||||
@@ -360,8 +362,8 @@ public class CompleteReferenceExpression {
|
||||
}
|
||||
|
||||
private static class CompleteReferenceProcessor extends ResolverProcessor implements Consumer<Object> {
|
||||
private static final Logger LOG = Logger.getInstance(
|
||||
"#org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.CompleteReferenceExpression.CompleteReferenceProcessor");
|
||||
private static final Logger LOG = Logger.getInstance(CompleteReferenceProcessor.class);
|
||||
|
||||
private final Consumer<LookupElement> myConsumer;
|
||||
private final PrefixMatcher myMatcher;
|
||||
private final CompletionParameters myParameters;
|
||||
|
||||
+23
@@ -1442,6 +1442,29 @@ class Inh<T> implements Base<T>{}
|
||||
def foo(Base<String> b){}
|
||||
|
||||
foo(new Inh<String>()<caret>)
|
||||
''')
|
||||
}
|
||||
|
||||
void testPropertiesOfBaseClass() {
|
||||
myFixture.addFileToProject('Base.groovy', '''\
|
||||
class Base {
|
||||
protected String foooo = 'field'
|
||||
|
||||
public String getFoooo() {'getter'}
|
||||
}
|
||||
''')
|
||||
doBasicTest('''\
|
||||
class Inheritor extends Base {
|
||||
def test() {
|
||||
assert fooo<caret> == 'getter'
|
||||
}
|
||||
}
|
||||
''', '''\
|
||||
class Inheritor extends Base {
|
||||
def test() {
|
||||
assert foooo<caret> == 'getter'
|
||||
}
|
||||
}
|
||||
''')
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user