KT-1727 Supported private namespace members in compiled Kotlin code.

This commit is contained in:
Evgeny Gerashchenko
2012-06-19 22:37:59 +04:00
parent 5ecfd71611
commit 8cc0d96430
3 changed files with 6 additions and 2 deletions
@@ -90,7 +90,7 @@ public class FunctionCodegen {
List<ValueParameterDescriptor> paramDescrs = functionDescriptor.getValueParameters(); List<ValueParameterDescriptor> paramDescrs = functionDescriptor.getValueParameters();
List<TypeParameterDescriptor> typeParameters = (functionDescriptor instanceof PropertyAccessorDescriptor ? ((PropertyAccessorDescriptor)functionDescriptor).getCorrespondingProperty(): functionDescriptor).getTypeParameters(); List<TypeParameterDescriptor> typeParameters = (functionDescriptor instanceof PropertyAccessorDescriptor ? ((PropertyAccessorDescriptor)functionDescriptor).getCorrespondingProperty(): functionDescriptor).getTypeParameters();
int flags = ACC_PUBLIC; // TODO. int flags = JetTypeMapper.getAccessModifiers(functionDescriptor, 0);
if (!functionDescriptor.getValueParameters().isEmpty() if (!functionDescriptor.getValueParameters().isEmpty()
&& functionDescriptor.getValueParameters().get(functionDescriptor.getValueParameters().size() - 1) && functionDescriptor.getValueParameters().get(functionDescriptor.getValueParameters().size() - 1)
@@ -995,6 +995,9 @@ public class JetTypeMapper {
if (DescriptorUtils.isClassObject(declaration)) { if (DescriptorUtils.isClassObject(declaration)) {
return defaultFlags; return defaultFlags;
} }
if (p.getContainingDeclaration() instanceof NamespaceDescriptor) {
return ACC_PUBLIC;
}
return ACC_PRIVATE; return ACC_PRIVATE;
} }
else if (p.getVisibility() == Visibilities.INTERNAL) { else if (p.getVisibility() == Visibilities.INTERNAL) {
@@ -126,7 +126,8 @@ public class PropertyCodegen {
} }
private static boolean isExternallyAccessible(PropertyDescriptor p) { private static boolean isExternallyAccessible(PropertyDescriptor p) {
return p.getVisibility() != Visibilities.PRIVATE || DescriptorUtils.isClassObject(p.getContainingDeclaration()); return p.getVisibility() != Visibilities.PRIVATE || DescriptorUtils.isClassObject(p.getContainingDeclaration())
|| p.getContainingDeclaration() instanceof NamespaceDescriptor;
} }
private void generateSetter(JetProperty p, PropertyDescriptor propertyDescriptor) { private void generateSetter(JetProperty p, PropertyDescriptor propertyDescriptor) {