'isVisible' strategy added to Visibility interface

This commit is contained in:
Svetlana Isakova
2012-03-29 20:37:22 +04:00
parent 7df4e6728b
commit 3c5d4f6857
20 changed files with 262 additions and 180 deletions
@@ -139,7 +139,7 @@ public abstract class CodegenContext {
public ConstructorContext intoConstructor(ConstructorDescriptor descriptor, JetTypeMapper typeMapper) {
if(descriptor == null) {
descriptor = new ConstructorDescriptorImpl(getThisDescriptor(), Collections.<AnnotationDescriptor>emptyList(), true)
.initialize(Collections.<TypeParameterDescriptor>emptyList(), Collections.<ValueParameterDescriptor>emptyList(), Visibility.PUBLIC);
.initialize(Collections.<TypeParameterDescriptor>emptyList(), Collections.<ValueParameterDescriptor>emptyList(), Visibilities.PUBLIC);
}
return new ConstructorContext(descriptor, getContextKind(), this, typeMapper);
}
@@ -73,7 +73,7 @@ public class CodegenUtil {
fd.getValueParameters(),
fd.getReturnType(),
Modality.FINAL,
Visibility.PUBLIC,
Visibilities.PUBLIC,
/*isInline = */false
);
return invokeDescriptor;
@@ -1020,7 +1020,7 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> {
final boolean directToField = expression.getReferencedNameElementType() == JetTokens.FIELD_IDENTIFIER && contextKind() != OwnerKind.TRAIT_IMPL ;
JetExpression r = getReceiverForSelector(expression);
final boolean isSuper = r instanceof JetSuperExpression;
if(propertyDescriptor.getVisibility() == Visibility.PRIVATE && !CodegenUtil.isClassObject(propertyDescriptor.getContainingDeclaration())) {
if(propertyDescriptor.getVisibility() == Visibilities.PRIVATE && !CodegenUtil.isClassObject(propertyDescriptor.getContainingDeclaration())) {
if(context.getClassOrNamespaceDescriptor() != propertyDescriptor.getContainingDeclaration()) {
DeclarationDescriptor enclosed = propertyDescriptor.getContainingDeclaration();
if(enclosed != null && enclosed != context.getThisDescriptor()) {
@@ -316,7 +316,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
InstructionAdapter iv = new InstructionAdapter(mv);
iv.load(0, JetTypeMapper.TYPE_OBJECT);
if(original.getVisibility() == Visibility.PRIVATE)
if(original.getVisibility() == Visibilities.PRIVATE)
iv.getfield(typeMapper.getOwner(original, OwnerKind.IMPLEMENTATION), original.getName(), originalMethod.getReturnType().getDescriptor());
else
iv.invokespecial(typeMapper.getOwner(original, OwnerKind.IMPLEMENTATION), originalMethod.getName(), originalMethod.getDescriptor());
@@ -349,7 +349,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
//noinspection AssignmentToForLoopParameter
reg += argType.getSize();
}
if(original.getVisibility() == Visibility.PRIVATE && original.getModality() == Modality.FINAL)
if(original.getVisibility() == Visibilities.PRIVATE && original.getModality() == Modality.FINAL)
iv.putfield(typeMapper.getOwner(original, OwnerKind.IMPLEMENTATION), original.getName(), originalMethod.getArgumentTypes()[0].getDescriptor());
else
iv.invokespecial(typeMapper.getOwner(original, OwnerKind.IMPLEMENTATION), originalMethod.getName(), originalMethod.getDescriptor());
@@ -757,13 +757,13 @@ public class JetTypeMapper {
if(CodegenUtil.isInterface(declaration)) {
return ACC_PUBLIC;
}
if (p.getVisibility() == Visibility.PUBLIC) {
if (p.getVisibility() == Visibilities.PUBLIC) {
return ACC_PUBLIC;
}
else if (p.getVisibility() == Visibility.PROTECTED) {
else if (p.getVisibility() == Visibilities.PROTECTED) {
return ACC_PROTECTED;
}
else if (p.getVisibility() == Visibility.PRIVATE) {
else if (p.getVisibility() == Visibilities.PRIVATE) {
if(CodegenUtil.isClassObject(declaration)) {
return defaultFlags;
}
@@ -119,7 +119,7 @@ public class PropertyCodegen {
}
private static boolean isExternallyAccessible(PropertyDescriptor p) {
return p.getVisibility() != Visibility.PRIVATE || CodegenUtil.isClassObject(p.getContainingDeclaration());
return p.getVisibility() != Visibilities.PRIVATE || CodegenUtil.isClassObject(p.getContainingDeclaration());
}
private void generateSetter(JetProperty p, PropertyDescriptor propertyDescriptor) {