From 7f69d9a3d0eb1a32dd54974cfad8aaa30dd1aa4a Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Thu, 30 Jun 2011 18:42:25 +0400 Subject: [PATCH] getOriginal() for PropertyDescriptor --- .../lang/descriptors/PropertyDescriptor.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/idea/src/org/jetbrains/jet/lang/descriptors/PropertyDescriptor.java b/idea/src/org/jetbrains/jet/lang/descriptors/PropertyDescriptor.java index aa44904f02f..d9e08dd66fe 100644 --- a/idea/src/org/jetbrains/jet/lang/descriptors/PropertyDescriptor.java +++ b/idea/src/org/jetbrains/jet/lang/descriptors/PropertyDescriptor.java @@ -18,10 +18,12 @@ public class PropertyDescriptor extends VariableDescriptorImpl implements Member private final boolean isVar; private final JetType receiverType; private final List typeParemeters = Lists.newArrayListWithCapacity(0); + private final PropertyDescriptor original; private PropertyGetterDescriptor getter; private PropertySetterDescriptor setter; - public PropertyDescriptor( + private PropertyDescriptor( + @Nullable PropertyDescriptor original, @NotNull DeclarationDescriptor containingDeclaration, @NotNull List annotations, @NotNull MemberModifiers memberModifiers, @@ -36,6 +38,19 @@ public class PropertyDescriptor extends VariableDescriptorImpl implements Member this.isVar = isVar; this.memberModifiers = memberModifiers; this.receiverType = receiverType; + this.original = original == null ? this : original; + } + + public PropertyDescriptor( + @NotNull DeclarationDescriptor containingDeclaration, + @NotNull List annotations, + @NotNull MemberModifiers memberModifiers, + boolean isVar, + @Nullable JetType receiverType, + @NotNull String name, + @Nullable JetType inType, + @NotNull JetType outType) { + this(null, containingDeclaration, annotations, memberModifiers, isVar, receiverType, name, inType, outType); } private PropertyDescriptor( @@ -44,6 +59,7 @@ public class PropertyDescriptor extends VariableDescriptorImpl implements Member @Nullable JetType inType, @NotNull JetType outType) { this( + original, original.getContainingDeclaration(), original.getAnnotations(), // TODO : substitute? original.getModifiers(), @@ -114,4 +130,10 @@ public class PropertyDescriptor extends VariableDescriptorImpl implements Member public R accept(DeclarationDescriptorVisitor visitor, D data) { return visitor.visitPropertyDescriptor(this, data); } + + @NotNull + @Override + public PropertyDescriptor getOriginal() { + return original; + } }