Update of /cvsroot/nice/Nice/src/bossa/syntax
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24364/F:/nice/src/bossa/syntax
Modified Files:
ClassDefinition.java
Log Message:
Check whether a class being extended is visible and make Nice classes public by default. (patch by Luc Perrin)
Index: ClassDefinition.java
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/syntax/ClassDefinition.java,v
retrieving revision 1.109
retrieving revision 1.110
diff -C2 -d -r1.109 -r1.110
*** ClassDefinition.java 1 Sep 2004 12:06:51 -0000 1.109
--- ClassDefinition.java 6 Nov 2004 11:23:07 -0000 1.110
***************
*** 71,75 ****
}
! int getBytecodeFlags() { return Access.INTERFACE; }
boolean implementsJavaInterface(String name)
--- 71,78 ----
}
! int getBytecodeFlags()
! {
! return Access.INTERFACE | Access.PUBLIC;
! }
boolean implementsJavaInterface(String name)
***************
*** 210,218 ****
int getBytecodeFlags()
{
! if (isFinal)
! return Access.FINAL;
! else if (isAbstract)
! return Access.ABSTRACT;
! else return 0;
}
--- 213,223 ----
int getBytecodeFlags()
{
! int flags = Access.PUBLIC;
! if (isFinal)
! flags |= Access.FINAL;
! if (isAbstract)
! flags |= Access.ABSTRACT;
!
! return flags;
}
***************
*** 276,279 ****
--- 281,287 ----
superClass + " is an interface, so " + name +
" may only implement it");
+ if (! nice.tools.code.Types.legalAccess(superClass, module.getName()))
+ User.error(superClassIdent, name + " cannot extend " +
+ superClass + ". It is not available to this package.");
superClassIdent = null;
|