diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java index 8aee1f75b6e..e12babfb45e 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java @@ -90,7 +90,7 @@ public class FunctionCodegen { List paramDescrs = functionDescriptor.getValueParameters(); List typeParameters = (functionDescriptor instanceof PropertyAccessorDescriptor ? ((PropertyAccessorDescriptor)functionDescriptor).getCorrespondingProperty(): functionDescriptor).getTypeParameters(); - int flags = ACC_PUBLIC; // TODO. + int flags = JetTypeMapper.getAccessModifiers(functionDescriptor, 0); if (!functionDescriptor.getValueParameters().isEmpty() && functionDescriptor.getValueParameters().get(functionDescriptor.getValueParameters().size() - 1) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java index 10a0d6aa41c..9598653883b 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java @@ -995,6 +995,9 @@ public class JetTypeMapper { if (DescriptorUtils.isClassObject(declaration)) { return defaultFlags; } + if (p.getContainingDeclaration() instanceof NamespaceDescriptor) { + return ACC_PUBLIC; + } return ACC_PRIVATE; } else if (p.getVisibility() == Visibilities.INTERNAL) { diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java index 031e9f3639f..0bd7d0482aa 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/PropertyCodegen.java @@ -126,7 +126,8 @@ public class PropertyCodegen { } 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) {