nice-commit Mailing List for The Nice Programming Language (Page 74)
Brought to you by:
bonniot
You can subscribe to this list here.
2003 |
Jan
|
Feb
(60) |
Mar
(125) |
Apr
(183) |
May
(140) |
Jun
(227) |
Jul
(141) |
Aug
(181) |
Sep
(75) |
Oct
(89) |
Nov
(187) |
Dec
(162) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(69) |
Feb
(197) |
Mar
(98) |
Apr
(26) |
May
(10) |
Jun
(85) |
Jul
(88) |
Aug
(79) |
Sep
(80) |
Oct
(81) |
Nov
(53) |
Dec
(109) |
2005 |
Jan
(68) |
Feb
(77) |
Mar
(232) |
Apr
(79) |
May
(37) |
Jun
(37) |
Jul
(3) |
Aug
(18) |
Sep
|
Oct
|
Nov
|
Dec
|
2006 |
Jan
(10) |
Feb
|
Mar
(4) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
(1) |
Dec
(9) |
2007 |
Jan
(2) |
Feb
(8) |
Mar
(2) |
Apr
(5) |
May
|
Jun
|
Jul
|
Aug
(4) |
Sep
|
Oct
|
Nov
(17) |
Dec
(6) |
2008 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <bo...@us...> - 2003-11-24 19:22:05
|
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv27954/src/bossa/syntax Modified Files: typecheck.nice analyse.nice MonoSymbol.java Log Message: Consider captured from all anonymous functions, even those that appear after the current point. Do not mark as captured local variables of an anonymous function when only accessed from that function. Index: typecheck.nice =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/typecheck.nice,v retrieving revision 1.88 retrieving revision 1.89 diff -C2 -d -r1.88 -r1.89 *** typecheck.nice 21 Nov 2003 15:09:42 -0000 1.88 --- typecheck.nice 24 Nov 2003 19:22:02 -0000 1.89 *************** *** 42,47 **** let variable = localVariable(to); - if (variable != null && Node.getCurrentFunction() instanceof FunExp) - setCaptured(variable); try{ --- 42,45 ---- *************** *** 488,512 **** (levels, conditionalTypes) = closureEnvironments.pop(); - } - - void setCaptured(MonoSymbol variable) - { - if (!variable.captured) - { - variable.captured = true; - //set all conditional types back to the original type - let origType = getOriginalType(variable) || variable.type; - variable.type = origType; - for (int i = 0; i < closureEnvironments.size(); i++) - { - (Stack<int> lvls, Stack<(MonoSymbol, mlsub.typing.Monotype)> condTypes) = closureEnvironments.get(i); - for (int k = 0; k < condTypes.size(); k++) - { - (MonoSymbol v, mlsub.typing.Monotype t) = condTypes.get(k); - if (v == variable) - condTypes.set(k, (v, origType)); - } - } - } } --- 486,489 ---- Index: analyse.nice =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/analyse.nice,v retrieving revision 1.86 retrieving revision 1.87 diff -C2 -d -r1.86 -r1.87 *** analyse.nice 24 Nov 2003 16:50:24 -0000 1.86 --- analyse.nice 24 Nov 2003 19:22:02 -0000 1.87 *************** *** 83,86 **** --- 83,96 ---- int varIndex = 0; + /* + The number of nested blocks. + */ + int depth = 0; + + /* + The depth of the current anonymous function. + */ + int anonFunDepth = 0; + boolean getUnreachable() = (this.flags & 1) != 0; void setUnreachable() { this.flags |= 1; } *************** *** 142,145 **** --- 152,156 ---- this.vars.begin(); this.typeVars.begin(); + this.depth++; } *************** *** 148,151 **** --- 159,163 ---- this.vars.end(); this.typeVars.end(); + this.depth--; } *************** *** 188,191 **** --- 200,204 ---- this.checkNotDefined(symbol); this.vars[symbol.name.toString()] = symbol; + symbol.depth = this.depth; } *************** *** 377,399 **** analyse(e@FunExp, info) { ! info.beginInner(); ! info.begin(); ! if (e.constraint != Constraint.True && e.constraint != null) ! { ! e.cst = notNull(e.constraint).resolveToLowlevel(); ! addTypeVars(info, notNull(e.cst).binders()); ! } ! e.constraint = null; ! if (e.formals != null) ! addVars(info, elementsNotNull(notNull(e.formals))); ! analyse(e.body, info); ! e.setAlwaysReturns(info.getUnreachable()); ! info.end(); ! info.endInner(); ! return e; } --- 390,420 ---- analyse(e@FunExp, info) { ! let savedDepth = info.anonFunDepth; ! try { ! info.beginInner(); ! info.begin(); ! info.anonFunDepth = info.depth; ! if (e.constraint != Constraint.True && e.constraint != null) ! { ! e.cst = notNull(e.constraint).resolveToLowlevel(); ! addTypeVars(info, notNull(e.cst).binders()); ! } ! e.constraint = null; ! if (e.formals != null) ! addVars(info, elementsNotNull(notNull(e.formals))); ! analyse(e.body, info); ! e.setAlwaysReturns(info.getUnreachable()); ! ! return e; ! } ! finally { ! info.end(); ! info.endInner(); ! info.anonFunDepth = savedDepth; ! } } *************** *** 414,424 **** else { ! if (sym instanceof Block.LocalVariable.Symbol) ! { ! if (assigned) ! setInitialized(sym, info, e.location()); ! else ! checkInitialized(sym, info, e.location()); ! } return new SymbolExp(sym, e.location()); } --- 435,452 ---- else { ! if (sym instanceof MonoSymbol) ! { ! if (sym.depth < info.anonFunDepth) ! sym.captured = true; ! ! if (sym instanceof Block.LocalVariable.Symbol) ! { ! if (assigned) ! setInitialized(sym, info, e.location()); ! else ! checkInitialized(sym, info, e.location()); ! } ! } ! return new SymbolExp(sym, e.location()); } Index: MonoSymbol.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/MonoSymbol.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** MonoSymbol.java 20 Nov 2003 01:16:49 -0000 1.26 --- MonoSymbol.java 24 Nov 2003 19:22:02 -0000 1.27 *************** *** 161,164 **** --- 161,167 ---- boolean captured = false; + /** The depth of nested block at which this variable is defined. */ + int depth; + Monotype syntacticType; mlsub.typing.Monotype type; |
From: <bo...@us...> - 2003-11-24 19:22:05
|
Update of /cvsroot/nice/Nice/testsuite/compiler/typing In directory sc8-pr-cvs1:/tmp/cvs-serv27954/testsuite/compiler/typing Modified Files: instanceof.testsuite Log Message: Consider captured from all anonymous functions, even those that appear after the current point. Do not mark as captured local variables of an anonymous function when only accessed from that function. Index: instanceof.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/typing/instanceof.testsuite,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** instanceof.testsuite 21 Nov 2003 13:03:38 -0000 1.13 --- instanceof.testsuite 24 Nov 2003 19:22:02 -0000 1.14 *************** *** 259,260 **** --- 259,288 ---- /// Toplevel class C extends B {} + + /// PASS + new LinkedList().foreach(A arg => { + arg = new B(); + if (arg instanceof B) { + assert arg.life == 42; + } + }); + + /// FAIL + ?int x = 1; + + let f = void->void g => { + if (x != null) { + g(); + int /*/// FAIL HERE*/ y = x; + } + }; + f(() => { x = null; }); + + /// PASS + Vector<A> ll = new Vector(); + ll.foreach(A arg => { + arg = new B(); + if (arg instanceof B) { + int x = arg.life; + } + }); |
From: <ar...@us...> - 2003-11-24 17:27:25
|
Update of /cvsroot/nice/Nice/testsuite/compiler/classes In directory sc8-pr-cvs1:/tmp/cvs-serv5224/F:/nice/testsuite/compiler/classes Modified Files: serialization.testsuite Log Message: treat negative numbers as constants. Index: serialization.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/classes/serialization.testsuite,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** serialization.testsuite 24 Nov 2003 14:47:49 -0000 1.2 --- serialization.testsuite 24 Nov 2003 17:27:22 -0000 1.3 *************** *** 23,27 **** import java.io.*; class A implements java.io.Serializable { ! final long serialVersionUID = 123456789L; int x; } --- 23,40 ---- import java.io.*; class A implements java.io.Serializable { ! final long serialVersionUID = +123456789L; ! int x; ! } ! ! /// PASS ! A a = new A(x: 10); ! A b = serializeThenDeserialize(a); ! assert a.x == b.x; ! let osc = ObjectStreamClass.lookup(A.class); ! assert osc.getSerialVersionUID() == -123456789L; ! /// Toplevel ! import java.io.*; ! class A implements java.io.Serializable { ! final long serialVersionUID = -123456789L; int x; } |
From: <ar...@us...> - 2003-11-24 17:27:25
|
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv5224/F:/nice/src/bossa/syntax Modified Files: ConstantExp.java Log Message: treat negative numbers as constants. Index: ConstantExp.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/ConstantExp.java,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** ConstantExp.java 24 Nov 2003 13:20:44 -0000 1.48 --- ConstantExp.java 24 Nov 2003 17:27:22 -0000 1.49 *************** *** 64,67 **** --- 64,72 ---- return ((Number) this.value).intValue() == 0; } + + public boolean isNumber() + { + return this.value instanceof Number && !(this.value instanceof Character); + } void computeType() *************** *** 178,182 **** } ! return new ConstantExp(type, tc, object, value+"", location); } --- 183,188 ---- } ! return new ConstantExp(type, tc, object, ! ""+value+(isLong ? "L" : ""), location); } *************** *** 192,196 **** try{ - //long value = Long.decode(rep).longValue(); long value = parse(rep); return makeInt(value, isLong, representation.location()); --- 198,201 ---- *************** *** 202,205 **** --- 207,220 ---- } } + + public ConstantExp makeNegative() + { + LocatedString newRepres = new LocatedString("-"+representation, location()); + + if (value instanceof Float || value instanceof Double) + return ConstantExp.makeFloating(newRepres); + + return ConstantExp.makeNumber(newRepres); + } private static long parse(String rep) throws NumberFormatException *************** *** 250,254 **** { float value = Float.parseFloat(repres); ! return new ConstantExp(PrimitiveType.floatTC, new Float(value), value+"", representation.location()); } --- 265,269 ---- { float value = Float.parseFloat(repres); ! return new ConstantExp(PrimitiveType.floatTC, new Float(value), value+"f", representation.location()); } |
From: <ar...@us...> - 2003-11-24 17:27:25
|
Update of /cvsroot/nice/Nice/src/bossa/parser In directory sc8-pr-cvs1:/tmp/cvs-serv5224/F:/nice/src/bossa/parser Modified Files: Parser.jj Log Message: treat negative numbers as constants. Index: Parser.jj =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/parser/Parser.jj,v retrieving revision 1.215 retrieving revision 1.216 diff -C2 -d -r1.215 -r1.216 *** Parser.jj 21 Nov 2003 16:05:14 -0000 1.215 --- Parser.jj 24 Nov 2003 17:27:22 -0000 1.216 *************** *** 2009,2014 **** { ( ! ( t="+" | t="-" | t="~" | t="!" ) res=PrimaryExpression() { res=CallExp.create(symb(t),res); } | res=Pre_crementExpression() --- 2009,2025 ---- { ( ! ( ( t="~" | t="!" ) res=PrimaryExpression() { res=CallExp.create(symb(t),res); } + | + ( t="+" | t="-" ) res=PrimaryExpression() + { if (res instanceof ConstantExp && ((ConstantExp)res).isNumber()) + { + if (t.kind == MINUS) + res=((ConstantExp)res).makeNegative(); + } + else + res=CallExp.create(symb(t),res); + } + ) | res=Pre_crementExpression() |
From: <bo...@us...> - 2003-11-24 16:50:28
|
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv28379/src/bossa/syntax Modified Files: analyse.nice Log Message: Removed some casts, since the compiler is now more clever about instanceof. Index: analyse.nice =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/analyse.nice,v retrieving revision 1.85 retrieving revision 1.86 diff -C2 -d -r1.85 -r1.86 *** analyse.nice 18 Oct 2003 22:50:55 -0000 1.85 --- analyse.nice 24 Nov 2003 16:50:24 -0000 1.86 *************** *** 416,424 **** if (sym instanceof Block.LocalVariable.Symbol) { - Block.LocalVariable.Symbol s = cast(sym); if (assigned) ! setInitialized(s, info, e.location()); else ! checkInitialized(s, info, e.location()); } return new SymbolExp(sym, e.location()); --- 416,423 ---- if (sym instanceof Block.LocalVariable.Symbol) { if (assigned) ! setInitialized(sym, info, e.location()); else ! checkInitialized(sym, info, e.location()); } return new SymbolExp(sym, e.location()); *************** *** 441,451 **** if (sym instanceof FormalParameters.Parameter.Symbol) { ! FormalParameters.Parameter.Symbol s = cast(sym); ! int state = s.getState(); if (state == 0/*XXX: FormalParameters.Parameter.Symbol.NOT_ACCESSIBLE*/) throw error(e, "Parameter " + e + " is not accessible"); if (state == 1/*XXX: FormalParameters.Parameter.Symbol.ARGUMENT_REFERENCE*/) ! return new FormalParameters.Parameter.AccessExp(s, e.location()); // Otherwise, we are in the normal case. } --- 440,449 ---- if (sym instanceof FormalParameters.Parameter.Symbol) { ! int state = sym.getState(); if (state == 0/*XXX: FormalParameters.Parameter.Symbol.NOT_ACCESSIBLE*/) throw error(e, "Parameter " + e + " is not accessible"); if (state == 1/*XXX: FormalParameters.Parameter.Symbol.ARGUMENT_REFERENCE*/) ! return new FormalParameters.Parameter.AccessExp(sym, e.location()); // Otherwise, we are in the normal case. } |
From: <ar...@us...> - 2003-11-24 15:09:03
|
Update of /cvsroot/nice/Nice/testsuite/compiler/methods In directory sc8-pr-cvs1:/tmp/cvs-serv5165/F:/nice/testsuite/compiler/methods Added Files: namedParameters.testsuite Log Message: Testcases for NPE in error reporting of named parameters. --- NEW FILE: namedParameters.testsuite --- /// FAIL System.out./* /// FAIL HERE */println(foo: "abc"); /// FAIL /* /// FAIL HERE */foo(xzy: 10); /// Toplevel void foo(int abc) {} void foo() {} |
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv1298/src/bossa/syntax Modified Files: NiceClass.java MethodImplementation.java MethodBodyDefinition.java DefaultMethodImplementation.java Log Message: Make private readObject and writeObject member methods when those methods are defined on a Nice class, so that Java serialization picks them up. Make the serialVersionUID field really private. Index: NiceClass.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/NiceClass.java,v retrieving revision 1.69 retrieving revision 1.70 diff -C2 -d -r1.69 -r1.70 *** NiceClass.java 23 Nov 2003 19:54:44 -0000 1.69 --- NiceClass.java 24 Nov 2003 14:47:50 -0000 1.70 *************** *** 925,929 **** fieldDecl.setCanRead(true); fieldDecl.setFlag(Declaration.IS_CONSTANT); ! fieldDecl.setPrivate(true); fieldDecl.setFlag(Declaration.STATIC_SPECIFIED); fieldDecl.setFlag(Declaration.TYPE_SPECIFIED); --- 925,929 ---- fieldDecl.setCanRead(true); fieldDecl.setFlag(Declaration.IS_CONSTANT); ! fieldDecl.setSpecifiedPrivate(true); fieldDecl.setFlag(Declaration.STATIC_SPECIFIED); fieldDecl.setFlag(Declaration.TYPE_SPECIFIED); Index: MethodImplementation.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/MethodImplementation.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** MethodImplementation.java 11 Sep 2003 20:51:46 -0000 1.1 --- MethodImplementation.java 24 Nov 2003 14:47:50 -0000 1.2 *************** *** 156,159 **** --- 156,161 ---- getRefExp(); + + createSerializationMethod(); } *************** *** 180,183 **** --- 182,224 ---- (new MiscAttr("patterns", Pattern.bytecodeRepresentation(formals).getBytes())); + } + + abstract TypeConstructor firstArgument(); + + /** + If the method implemented corresponds to readObject or writeObject, + create private member methods in the class of the first argument, + so that the Java serialization process picks them up. + */ + private void createSerializationMethod() + { + final int arity = formals.length; + + if (arity != 2) + return; + + String name = this.name.toString(); + + if (name.equals("writeObject") || name.equals("readObject")) + { + ClassDefinition def = ClassDefinition.get(firstArgument()); + if (def == null || ! (def.getImplementation() instanceof NiceClass)) + return; + + NiceClass c = (NiceClass) def.getImplementation(); + + gnu.expr.Expression[] params = new gnu.expr.Expression[arity]; + gnu.expr.LambdaExp method = Gen.createMemberMethod + (name.toString(), + c.getClassExp().getType(), + new Type[]{declaration.javaArgTypes()[1]}, + declaration.javaReturnType(), + params); + + Gen.setMethodBody(method, + new gnu.expr.ApplyExp(getRefExp(), params)); + + c.getClassExp().addMethod(method, true); + } } Index: MethodBodyDefinition.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/MethodBodyDefinition.java,v retrieving revision 1.143 retrieving revision 1.144 diff -C2 -d -r1.143 -r1.144 *** MethodBodyDefinition.java 8 Oct 2003 22:30:11 -0000 1.143 --- MethodBodyDefinition.java 24 Nov 2003 14:47:50 -0000 1.144 *************** *** 90,94 **** final TypeConstructor firstArgument() { ! return formals[0].tc; } --- 90,101 ---- final TypeConstructor firstArgument() { ! if (formals[0].tc != null) ! return formals[0].tc; ! else ! // Either there is no specialization on the first parameter, or ! // it was equivalent to the declaration type and has been erased, ! // so we return the information in the declaration. ! return nice.tools.code.Types.equivalent(declaration.getArgTypes()[0]). ! head(); } Index: DefaultMethodImplementation.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/DefaultMethodImplementation.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** DefaultMethodImplementation.java 13 Sep 2003 00:39:53 -0000 1.2 --- DefaultMethodImplementation.java 24 Nov 2003 14:47:50 -0000 1.3 *************** *** 53,56 **** --- 53,61 ---- } + final mlsub.typing.TypeConstructor firstArgument() + { + return nice.tools.code.Types.equivalent(declaration.getArgTypes()[0]).head(); + } + void doResolve() { |
From: <bo...@us...> - 2003-11-24 14:47:53
|
Update of /cvsroot/nice/Nice/src/gnu/expr In directory sc8-pr-cvs1:/tmp/cvs-serv1298/src/gnu/expr Modified Files: LambdaExp.java Declaration.java ClassExp.java Log Message: Make private readObject and writeObject member methods when those methods are defined on a Nice class, so that Java serialization picks them up. Make the serialVersionUID field really private. Index: LambdaExp.java =================================================================== RCS file: /cvsroot/nice/Nice/src/gnu/expr/LambdaExp.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** LambdaExp.java 6 Nov 2003 14:30:26 -0000 1.20 --- LambdaExp.java 24 Nov 2003 14:47:49 -0000 1.21 *************** *** 775,780 **** nameBuf.append("$T"); ! int mflags = (isStatic ? Access.STATIC : 0) ! + (nameDecl != null && ! nameDecl.isPrivate() ? Access.PUBLIC : 0); if (isInitMethod) { --- 775,785 ---- nameBuf.append("$T"); ! int mflags = (isStatic ? Access.STATIC : 0); ! if (nameDecl != null) ! if (nameDecl.isSpecifiedPrivate()) ! mflags |= Access.PRIVATE; ! else if (! nameDecl.isPrivate()) ! mflags |= Access.PUBLIC; ! if (isInitMethod) { Index: Declaration.java =================================================================== RCS file: /cvsroot/nice/Nice/src/gnu/expr/Declaration.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Declaration.java 8 Aug 2003 19:16:33 -0000 1.11 --- Declaration.java 24 Nov 2003 14:47:49 -0000 1.12 *************** *** 231,234 **** --- 231,241 ---- } + public final boolean isSpecifiedPrivate() { return (flags & PRIVATE_SPECIFIED) != 0; } + + public final void setSpecifiedPrivate(boolean isPrivate) + { + setFlag(isPrivate, PRIVATE_SPECIFIED); + } + public final boolean isAlias() { return (flags & IS_ALIAS) != 0; } public final void setAlias(boolean flag) { setFlag(flag, IS_ALIAS); } Index: ClassExp.java =================================================================== RCS file: /cvsroot/nice/Nice/src/gnu/expr/ClassExp.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** ClassExp.java 3 Nov 2003 15:43:19 -0000 1.14 --- ClassExp.java 24 Nov 2003 14:47:49 -0000 1.15 *************** *** 83,87 **** @return the expression that should be used to call that method. */ ! public ReferenceExp addMethod(LambdaExp method) { Declaration decl = new Declaration(method.getName()); --- 83,87 ---- @return the expression that should be used to call that method. */ ! public ReferenceExp addMethod(LambdaExp method, boolean isPrivate) { Declaration decl = new Declaration(method.getName()); *************** *** 89,92 **** --- 89,94 ---- decl.setFlag(Declaration.IS_CONSTANT|Declaration.STATIC_SPECIFIED); decl.setProcedureDecl(true); + if (isPrivate) + decl.setSpecifiedPrivate(true); method.nameDecl.context = this; *************** *** 109,112 **** --- 111,123 ---- } + /** + Add a method to this class. + @return the expression that should be used to call that method. + */ + public ReferenceExp addMethod(LambdaExp method) + { + return addMethod(method, false); + } + /* public Object eval (Environment env) *************** *** 295,299 **** if (decl.getCanRead() && decl.field == null) { ! int flags = Access.PUBLIC; if (decl.getFlag(Declaration.STATIC_SPECIFIED)) flags |= Access.STATIC; --- 306,314 ---- if (decl.getCanRead() && decl.field == null) { ! int flags = 0; ! if (decl.isSpecifiedPrivate()) ! flags |= Access.PRIVATE; ! else ! flags |= Access.PUBLIC; if (decl.getFlag(Declaration.STATIC_SPECIFIED)) flags |= Access.STATIC; |
From: <bo...@us...> - 2003-11-24 14:47:53
|
Update of /cvsroot/nice/Nice/testsuite/compiler/classes In directory sc8-pr-cvs1:/tmp/cvs-serv1298/testsuite/compiler/classes Modified Files: serialization.testsuite Log Message: Make private readObject and writeObject member methods when those methods are defined on a Nice class, so that Java serialization picks them up. Make the serialVersionUID field really private. Index: serialization.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/classes/serialization.testsuite,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** serialization.testsuite 23 Nov 2003 12:52:18 -0000 1.1 --- serialization.testsuite 24 Nov 2003 14:47:49 -0000 1.2 *************** *** 1,11 **** ! /// PASS ! A a = new A(x: 10); let outb = new ByteArrayOutputStream(); let outs = new ObjectOutputStream(outb); ! outs.writeObject(a); let store = outb.toByteArray(); let inb = new ByteArrayInputStream(store); let ins = new ObjectInputStream(inb); ! A b = ins.readObject(); assert a.x == b.x; let osc = ObjectStreamClass.lookup(A.class); --- 1,20 ---- ! /// global ! import java.io.*; ! ! <T> T serializeThenDeserialize(T obj) ! { let outb = new ByteArrayOutputStream(); let outs = new ObjectOutputStream(outb); ! outs.writeObject(obj); let store = outb.toByteArray(); + let inb = new ByteArrayInputStream(store); let ins = new ObjectInputStream(inb); ! return ins.readObject(); ! } ! ! /// PASS ! A a = new A(x: 10); ! A b = serializeThenDeserialize(a); assert a.x == b.x; let osc = ObjectStreamClass.lookup(A.class); *************** *** 23,24 **** --- 32,72 ---- final long /* /// FAIL HERE */serialVersionUID = "xyz"; } + + /// PASS + A a = serializeThenDeserialize(new A()); + assert a.ok; + + B b = serializeThenDeserialize(new B()); + assert b.ok; + + /// Toplevel + import java.io.*; + + class A implements Serializable + { + transient boolean ok = true; + + private void writeObject(ObjectOutputStream out) { + out.writeBoolean(true); + } + + private void readObject(ObjectInputStream in) { + ok = in.readBoolean(); + } + } + + class B implements Serializable + { + transient boolean ok = true; + + private void writeObject(ObjectOutputStream out); + private void readObject(ObjectInputStream in); + } + + writeObject(this@B, out) { + out.writeBoolean(true); + } + + readObject(this@B, in) { + ok = in.readBoolean(); + } |
From: <bo...@us...> - 2003-11-24 13:20:47
|
Update of /cvsroot/nice/Nice/regtest/coreJava In directory sc8-pr-cvs1:/tmp/cvs-serv16753/regtest/coreJava Modified Files: coreJava.code Log Message: Allow unsigned hexadecimal constants that represent negative values. Index: coreJava.code =================================================================== RCS file: /cvsroot/nice/Nice/regtest/coreJava/coreJava.code,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** coreJava.code 26 Aug 2003 00:45:13 -0000 1.28 --- coreJava.code 24 Nov 2003 13:20:44 -0000 1.29 *************** *** 42,46 **** p("" + ~i + ", " + ~j); ! //p("" + 0x8000000000000000L); p("" + 0x7fffffffffffffffL); j = 456L + 0xABC; --- 42,46 ---- p("" + ~i + ", " + ~j); ! p("" + 0x8000000000000000L); p("" + 0x7fffffffffffffffL); j = 456L + 0xABC; |
From: <bo...@us...> - 2003-11-24 13:20:47
|
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv16753/src/bossa/syntax Modified Files: ConstantExp.java Log Message: Allow unsigned hexadecimal constants that represent negative values. Index: ConstantExp.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/ConstantExp.java,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** ConstantExp.java 21 Oct 2003 14:46:10 -0000 1.47 --- ConstantExp.java 24 Nov 2003 13:20:44 -0000 1.48 *************** *** 236,250 **** throw new NumberFormatException("Negative sign in wrong position"); ! try { ! result = Long.parseLong(rep.substring(index), radix); ! if (negative) ! result = -result; ! } catch (NumberFormatException e) { ! // Handle the case Long.MIN_VALUE: ! // the absolute value overflows, but it should be valid ! String constant = negative ? new String("-" + rep.substring(index)) ! : rep.substring(index); ! result = Long.parseLong(constant, radix); ! } return result; } --- 236,244 ---- throw new NumberFormatException("Negative sign in wrong position"); ! result = new java.math.BigInteger(rep.substring(index), radix).longValue(); ! ! if (negative) ! result = -result; ! return result; } |
From: <ar...@us...> - 2003-11-23 19:54:47
|
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv6914/F:/nice/src/bossa/syntax Modified Files: NiceClass.java Log Message: removed forgotten comment. Index: NiceClass.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/NiceClass.java,v retrieving revision 1.68 retrieving revision 1.69 diff -C2 -d -r1.68 -r1.69 *** NiceClass.java 23 Nov 2003 12:52:18 -0000 1.68 --- NiceClass.java 23 Nov 2003 19:54:44 -0000 1.69 *************** *** 806,810 **** // but before compilation. createFields(); - // createSerialUIDField(); } --- 806,809 ---- |
From: <ar...@us...> - 2003-11-23 19:15:18
|
Update of /cvsroot/nice/Nice/src/gnu/bytecode In directory sc8-pr-cvs1:/tmp/cvs-serv32152/F:/nice/src/gnu/bytecode Modified Files: Type.java Log Message: Fixed bug in bytecode.Type.lowestCommonSuperType. Index: Type.java =================================================================== RCS file: /cvsroot/nice/Nice/src/gnu/bytecode/Type.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Type.java 25 Aug 2003 22:30:00 -0000 1.15 --- Type.java 23 Nov 2003 19:15:15 -0000 1.16 *************** *** 470,473 **** --- 470,477 ---- else if (t2.isSubtype(t1)) return t1; + else if (t1 == char_type && t2.isSubtype(int_type)) + return int_type; + else if (t2 == char_type && t1.isSubtype(int_type)) + return int_type; else { |
From: <ar...@us...> - 2003-11-23 19:15:18
|
Update of /cvsroot/nice/Nice/testsuite/compiler/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv32152/F:/nice/testsuite/compiler/syntax Modified Files: tupleArguments.testsuite Log Message: Fixed bug in bytecode.Type.lowestCommonSuperType. Index: tupleArguments.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/syntax/tupleArguments.testsuite,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** tupleArguments.testsuite 16 Jun 2003 21:33:14 -0000 1.2 --- tupleArguments.testsuite 23 Nov 2003 19:15:15 -0000 1.3 *************** *** 42,60 **** (String, String) foo((String s, String t) tuple = ("abc", "xyz")) = tuple; - /// PASS bug - assert foo(("abc",('x',3)))==3; - /// Toplevel - int foo((String s,(char c, int i))) = i; - /// PASS ! // this one is not a bug, compare with previous ! char c = 'x'; ! int i = 3; ! assert foo(("abc",(c,i)))==3; /// Toplevel int foo((String s,(char c, int i))) = i; - - /// PASS bug - assert foo((('y',7),"xyz"))==7; - /// Toplevel - int foo(((char c, int i),String s)) = i; --- 42,47 ---- (String, String) foo((String s, String t) tuple = ("abc", "xyz")) = tuple; /// PASS ! assert foo(("abc",('x',3)))==3; /// Toplevel int foo((String s,(char c, int i))) = i; |
From: <ar...@us...> - 2003-11-23 16:25:20
|
Update of /cvsroot/nice/Nice/testsuite/compiler/classes In directory sc8-pr-cvs1:/tmp/cvs-serv32388/F:/nice/testsuite/compiler/classes Modified Files: fields.testsuite Log Message: Make it possible to access a static field of a superclass or interface. Index: fields.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/classes/fields.testsuite,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** fields.testsuite 5 Oct 2003 19:48:55 -0000 1.12 --- fields.testsuite 23 Nov 2003 16:25:17 -0000 1.13 *************** *** 117,121 **** int f(A a) = a.x++; ! /// PASS bug // accessing a final static field of an interface implemented by ObjectInputStream int x = ObjectInputStream.TC_NULL; --- 117,121 ---- int f(A a) = a.x++; ! /// PASS // accessing a final static field of an interface implemented by ObjectInputStream int x = ObjectInputStream.TC_NULL; |
From: <ar...@us...> - 2003-11-23 16:25:20
|
Update of /cvsroot/nice/Nice/debian In directory sc8-pr-cvs1:/tmp/cvs-serv32388/F:/nice/debian Modified Files: changelog Log Message: Make it possible to access a static field of a superclass or interface. Index: changelog =================================================================== RCS file: /cvsroot/nice/Nice/debian/changelog,v retrieving revision 1.228 retrieving revision 1.229 diff -C2 -d -r1.228 -r1.229 *** changelog 23 Nov 2003 12:52:18 -0000 1.228 --- changelog 23 Nov 2003 16:25:17 -0000 1.229 *************** *** 9,12 **** --- 9,13 ---- final long serialVersionUID = 123456789L; } + * Bug fixes (accessing static fields of an superclass or interface, ...) -- |
From: <ar...@us...> - 2003-11-23 16:25:20
|
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv32388/F:/nice/src/bossa/syntax Modified Files: JavaClasses.java Log Message: Make it possible to access a static field of a superclass or interface. Index: JavaClasses.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/JavaClasses.java,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** JavaClasses.java 24 Oct 2003 11:24:17 -0000 1.39 --- JavaClasses.java 23 Nov 2003 16:25:17 -0000 1.40 *************** *** 302,322 **** // search a field if (arity <= 0) { ! gnu.bytecode.Field field = declaringClass.getField(funName); ! if (field != null && field.getStaticFlag()) { ! MethodDeclaration md = (JavaFieldAccess) retyped.get(field); ! if (md == null) ! md = JavaFieldAccess.make(field); ! if (md != null) possibilities.add(md.getSymbol()); ! else ! if(Debug.javaTypes) ! Debug.println("Field " + field + " ignored"); ! } } ! return possibilities; ! } /** --- 302,341 ---- // search a field if (arity <= 0) + findStaticJavaFields(declaringClass, funName, possibilities); + + return possibilities; + } + + /**search recursively in superclasses and interfaces for static java fields*/ + private static void findStaticJavaFields + (ClassType declaringClass, String fieldName, List possibilities) + { + declaringClass.addMethods(); + + gnu.bytecode.Field field = declaringClass.getField(fieldName); + if (field != null && field.getStaticFlag()) { ! MethodDeclaration md = (JavaFieldAccess) retyped.get(field); ! if (md == null) ! md = JavaFieldAccess.make(field); ! if (md != null) { ! if (! possibilities.contains(md.getSymbol())) possibilities.add(md.getSymbol()); ! } ! else ! if(Debug.javaTypes) ! Debug.println("Field " + field + " ignored"); } + + ClassType superClass = declaringClass.getSuperclass(); + if (superClass != null) + findStaticJavaFields(superClass, fieldName, possibilities); ! ClassType[] interfaces = declaringClass.getInterfaces(); ! if (interfaces != null) ! for (int i = 0; i < interfaces.length; i++) ! findStaticJavaFields(interfaces[i], fieldName, possibilities); ! } /** |
From: <ar...@us...> - 2003-11-23 12:52:22
|
Update of /cvsroot/nice/Nice/testsuite/compiler/classes In directory sc8-pr-cvs1:/tmp/cvs-serv29449/F:/nice/testsuite/compiler/classes Added Files: serialization.testsuite Log Message: Make it possible to set the serialVersionUID field for Nice classes. --- NEW FILE: serialization.testsuite --- /// PASS A a = new A(x: 10); let outb = new ByteArrayOutputStream(); let outs = new ObjectOutputStream(outb); outs.writeObject(a); let store = outb.toByteArray(); let inb = new ByteArrayInputStream(store); let ins = new ObjectInputStream(inb); A b = ins.readObject(); assert a.x == b.x; let osc = ObjectStreamClass.lookup(A.class); assert osc.getSerialVersionUID() == 123456789L; /// Toplevel import java.io.*; class A implements java.io.Serializable { final long serialVersionUID = 123456789L; int x; } /// FAIL /// Toplevel class A implements java.io.Serializable { final long /* /// FAIL HERE */serialVersionUID = "xyz"; } |
From: <ar...@us...> - 2003-11-23 12:52:22
|
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv29449/F:/nice/src/bossa/syntax Modified Files: NiceClass.java Log Message: Make it possible to set the serialVersionUID field for Nice classes. Index: NiceClass.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/NiceClass.java,v retrieving revision 1.67 retrieving revision 1.68 diff -C2 -d -r1.67 -r1.68 *** NiceClass.java 22 Nov 2003 01:06:00 -0000 1.67 --- NiceClass.java 23 Nov 2003 12:52:18 -0000 1.68 *************** *** 24,27 **** --- 24,30 ---- import nice.tools.code.*; + import gnu.expr.Declaration; + import gnu.expr.QuoteExp; + /** Abstract syntax for a class definition. *************** *** 49,53 **** this.fields = noFields; else ! this.fields = (NewField[]) fields.toArray(new NewField[fields.size()]); } --- 52,70 ---- this.fields = noFields; else ! { ! for(Iterator it = fields.iterator(); it.hasNext();) ! { ! Field field = (Field)it.next(); ! if (field.isFinal() && field.sym.getName().toString().equals("serialVersionUID")) ! { ! it.remove(); ! if (field.value instanceof ConstantExp && ((ConstantExp)field.value).value instanceof Long) ! serialVersionUIDValue = (Long)((ConstantExp)field.value).value; ! else ! User.error(field.sym, "the value of an serialVersionUID should a constant of type long"); ! } ! } ! this.fields = (NewField[]) fields.toArray(new NewField[fields.size()]); ! } } *************** *** 527,530 **** --- 544,548 ---- " {\n" + Util.map("", ";\n", ";\n", fields) + + serialUIDFieldString() + Util.map("", ";\n", ";\n", overrides) + Util.map("{\n", "\n", "}\n", initializers) *************** *** 532,536 **** ); } ! /**************************************************************** * Code generation --- 550,561 ---- ); } ! ! String serialUIDFieldString() ! { ! if (serialVersionUIDValue == null) ! return ""; ! ! return "final long serialVersionUID = " + serialVersionUIDValue + "L;\n"; ! } /**************************************************************** * Code generation *************** *** 781,784 **** --- 806,810 ---- // but before compilation. createFields(); + // createSerialUIDField(); } *************** *** 786,789 **** --- 812,816 ---- { recompile(); + createSerialUIDField(); } *************** *** 890,893 **** --- 917,935 ---- } + void createSerialUIDField() + { + if (serialVersionUIDValue == null) + return; + + Declaration fieldDecl = classe.addDeclaration("serialVersionUID", SpecialTypes.longType); + fieldDecl.setSimple(false); + fieldDecl.setCanRead(true); + fieldDecl.setFlag(Declaration.IS_CONSTANT); + fieldDecl.setPrivate(true); + fieldDecl.setFlag(Declaration.STATIC_SPECIFIED); + fieldDecl.setFlag(Declaration.TYPE_SPECIFIED); + fieldDecl.noteValue(new QuoteExp(serialVersionUIDValue, SpecialTypes.longType)); + } + /**************************************************************** * Misc. *************** *** 898,900 **** --- 940,943 ---- private NewField[] fields; private OverridenField[] overrides; + private Long serialVersionUIDValue; } |
From: <ar...@us...> - 2003-11-23 12:52:22
|
Update of /cvsroot/nice/Nice/debian In directory sc8-pr-cvs1:/tmp/cvs-serv29449/F:/nice/debian Modified Files: changelog Log Message: Make it possible to set the serialVersionUID field for Nice classes. Index: changelog =================================================================== RCS file: /cvsroot/nice/Nice/debian/changelog,v retrieving revision 1.227 retrieving revision 1.228 diff -C2 -d -r1.227 -r1.228 *** changelog 21 Nov 2003 16:05:14 -0000 1.227 --- changelog 23 Nov 2003 12:52:18 -0000 1.228 *************** *** 5,8 **** --- 5,12 ---- instance: println("x has value "x" and y has value "y); + * A custom serialVersionUID can be set for Nice classes using a final field. + class X implements java.io.Serializable { + final long serialVersionUID = 123456789L; + } -- |
From: <ar...@us...> - 2003-11-22 16:38:22
|
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv16950/F:/nice/src/bossa/syntax Modified Files: Arguments.java FormalParameters.java Log Message: fixed NPE(and some potential others) in error reporting of named arguments. Index: Arguments.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/Arguments.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** Arguments.java 21 Nov 2003 08:09:58 -0000 1.20 --- Arguments.java 22 Nov 2003 16:37:39 -0000 1.21 *************** *** 253,257 **** { String s = arguments[i].name.toString(); ! if (!parameters.hasMatchFor(s)) res.add(s); } --- 253,257 ---- { String s = arguments[i].name.toString(); ! if (parameters == null || !parameters.hasMatchFor(s)) res.add(s); } Index: FormalParameters.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/FormalParameters.java,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** FormalParameters.java 11 Aug 2003 19:31:31 -0000 1.32 --- FormalParameters.java 22 Nov 2003 16:37:39 -0000 1.33 *************** *** 17,20 **** --- 17,21 ---- import java.util.Iterator; import java.util.LinkedList; + import java.util.ArrayList; import java.util.List; *************** *** 457,461 **** public boolean hasMatchFor(String s) { ! for (int i = 0; i<parameters.length; i++) if (parameters[i].match(s)) return true; --- 458,462 ---- public boolean hasMatchFor(String s) { ! for (int i = 0; i<size; i++) if (parameters[i].match(s)) return true; *************** *** 475,479 **** public Iterator iterator() { ! return Arrays.asList(parameters).iterator(); } --- 476,483 ---- public Iterator iterator() { ! if (parameters != null) ! return Arrays.asList(parameters).iterator(); ! ! return new ArrayList().iterator(); } *************** *** 481,485 **** { LinkedList res = new LinkedList(); ! for(int i = 0; i < parameters.length; i++) { Parameter param = parameters[i]; --- 485,489 ---- { LinkedList res = new LinkedList(); ! for(int i = 0; i < size; i++) { Parameter param = parameters[i]; *************** *** 495,499 **** { LinkedList res = new LinkedList(); ! for(int i = 0; i < parameters.length; i++) { Parameter param = parameters[i]; --- 499,503 ---- { LinkedList res = new LinkedList(); ! for(int i = 0; i < size; i++) { Parameter param = parameters[i]; |
From: <ar...@us...> - 2003-11-22 01:06:03
|
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv23830/F:/nice/src/bossa/syntax Modified Files: NiceClass.java Log Message: generate getters/setters in bytecode of fields in Nice classes. (not used yet) Index: NiceClass.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/NiceClass.java,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** NiceClass.java 21 Nov 2003 08:09:58 -0000 1.66 --- NiceClass.java 22 Nov 2003 01:06:00 -0000 1.67 *************** *** 22,26 **** import nice.tools.code.Types; ! import nice.tools.code.Gen; /** --- 22,26 ---- import nice.tools.code.Types; ! import nice.tools.code.*; /** *************** *** 196,199 **** --- 196,227 ---- method.fieldDecl.setFlag(isTransient, gnu.expr.Declaration.TRANSIENT); method.fieldDecl.setFlag(isVolatile , gnu.expr.Declaration.VOLATILE); + + String fname = sym.getName().toString(); + String suffix = Character.toUpperCase(fname.charAt(0)) + fname.substring(1); + createGetter(suffix); + if (!isFinal) + createSetter(suffix); + } + + void createGetter(String nameSuffix) + { + gnu.expr.Expression[] params = new gnu.expr.Expression[1]; + gnu.expr.LambdaExp getter = Gen.createMemberMethod + ("get"+nameSuffix, classe.getType(), null, + method.fieldDecl.getType(), params); + Gen.setMethodBody(getter, Inline.inline(new GetFieldProc(method.fieldDecl), params[0])); + classe.addMethod(getter); + } + + void createSetter(String nameSuffix) + { + gnu.expr.Expression[] params = new gnu.expr.Expression[2]; + gnu.bytecode.Type[] argTypes = new gnu.bytecode.Type[1]; + argTypes[0] = method.fieldDecl.getType(); + gnu.expr.LambdaExp setter = Gen.createMemberMethod + ("set"+nameSuffix, classe.getType(), argTypes, + method.fieldDecl.getType(), params); + Gen.setMethodBody(setter, Inline.inline(new SetFieldProc(method.fieldDecl), params[0], params[1])); + classe.addMethod(setter); } |
From: <ar...@us...> - 2003-11-21 18:56:31
|
Update of /cvsroot/nice/swing/src/nice/ui/common In directory sc8-pr-cvs1:/tmp/cvs-serv23608/d:/nice/nice/ui/common Modified Files: AWTListenerAccessors.nice SwingListenerAccessors.nice Log Message: make niceswing compile again. Index: AWTListenerAccessors.nice =================================================================== RCS file: /cvsroot/nice/swing/src/nice/ui/common/AWTListenerAccessors.nice,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AWTListenerAccessors.nice 13 Nov 2002 02:22:28 -0000 1.3 --- AWTListenerAccessors.nice 21 Nov 2003 18:56:28 -0000 1.4 *************** *** 55,59 **** { EventListener[?] listeners = this.getListeners(PropertyChangeListener.class); ! return (listeners == null) ? null : fill(new NicePropertyChangeListener[listeners.length], int i => listeners[i].toNicePropertyChangeListener()); } --- 55,59 ---- { EventListener[?] listeners = this.getListeners(PropertyChangeListener.class); ! return (listeners == null) ? null : listeners.map(toNicePropertyChangeListener); } *************** *** 61,65 **** { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : fill(new NiceActionListener[listeners.length], int i => listeners[i].toNiceActionListener()); } --- 61,65 ---- { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceActionListener); } *************** *** 67,71 **** { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : fill(new NiceActionListener[listeners.length], int i => listeners[i].toNiceActionListener()); } --- 67,71 ---- { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceActionListener); } *************** *** 73,77 **** { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : fill(new NiceActionListener[listeners.length], int i => listeners[i].toNiceActionListener()); } --- 73,77 ---- { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceActionListener); } *************** *** 79,83 **** { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : fill(new NiceActionListener[listeners.length], int i => listeners[i].toNiceActionListener()); } --- 79,83 ---- { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceActionListener); } *************** *** 85,89 **** { EventListener[?] listeners = this.getListeners(ItemListener.class); ! return (listeners == null) ? null : fill(new NiceItemListener[listeners.length], int i => listeners[i].toNiceItemListener()); } --- 85,89 ---- { EventListener[?] listeners = this.getListeners(ItemListener.class); ! return (listeners == null) ? null : listeners.map(toNiceItemListener); } *************** *** 91,95 **** { EventListener[?] listeners = this.getListeners(ItemListener.class); ! return (listeners == null) ? null : fill(new NiceItemListener[listeners.length], int i => listeners[i].toNiceItemListener()); } --- 91,95 ---- { EventListener[?] listeners = this.getListeners(ItemListener.class); ! return (listeners == null) ? null : listeners.map(toNiceItemListener); } *************** *** 97,101 **** { EventListener[?] listeners = this.getListeners(ItemListener.class); ! return (listeners == null) ? null : fill(new NiceItemListener[listeners.length], int i => listeners[i].toNiceItemListener()); } --- 97,101 ---- { EventListener[?] listeners = this.getListeners(ItemListener.class); ! return (listeners == null) ? null : listeners.map(toNiceItemListener); } *************** *** 103,107 **** { EventListener[?] listeners = this.getListeners(ItemListener.class); ! return (listeners == null) ? null : fill(new NiceItemListener[listeners.length], int i => listeners[i].toNiceItemListener()); } --- 103,107 ---- { EventListener[?] listeners = this.getListeners(ItemListener.class); ! return (listeners == null) ? null : listeners.map(toNiceItemListener); } *************** *** 109,113 **** { EventListener[?] listeners = this.getListeners(TextListener.class); ! return (listeners == null) ? null : fill(new NiceTextListener[listeners.length], int i => listeners[i].toNiceTextListener()); } --- 109,113 ---- { EventListener[?] listeners = this.getListeners(TextListener.class); ! return (listeners == null) ? null : listeners.map(toNiceTextListener); } *************** *** 115,119 **** { EventListener[?] listeners = this.getListeners(AdjustmentListener.class); ! return (listeners == null) ? null : fill(new NiceAdjustmentListener[listeners.length], int i => listeners[i].toNiceAdjustmentListener()); } --- 115,119 ---- { EventListener[?] listeners = this.getListeners(AdjustmentListener.class); ! return (listeners == null) ? null : listeners.map(toNiceAdjustmentListener); } *************** *** 121,125 **** { EventListener[?] listeners = this.getListeners(ContainerListener.class); ! return (listeners == null) ? null : fill(new NiceContainerListener[listeners.length], int i => listeners[i].toNiceContainerListener()); } --- 121,125 ---- { EventListener[?] listeners = this.getListeners(ContainerListener.class); ! return (listeners == null) ? null : listeners.map(toNiceContainerListener); } *************** *** 127,131 **** { EventListener[?] listeners = this.getListeners(WindowListener.class); ! return (listeners == null) ? null : fill(new NiceWindowListener[listeners.length], int i => listeners[i].toNiceWindowListener()); } --- 127,131 ---- { EventListener[?] listeners = this.getListeners(WindowListener.class); ! return (listeners == null) ? null : listeners.map(toNiceWindowListener); } *************** *** 133,137 **** { EventListener[?] listeners = this.getListeners(ComponentListener.class); ! return (listeners == null) ? null : fill(new NiceComponentListener[listeners.length], int i => listeners[i].toNiceComponentListener()); } --- 133,137 ---- { EventListener[?] listeners = this.getListeners(ComponentListener.class); ! return (listeners == null) ? null : listeners.map(toNiceComponentListener); } *************** *** 139,143 **** { EventListener[?] listeners = this.getListeners(FocusListener.class); ! return (listeners == null) ? null : fill(new NiceFocusListener[listeners.length], int i => listeners[i].toNiceFocusListener()); } --- 139,143 ---- { EventListener[?] listeners = this.getListeners(FocusListener.class); ! return (listeners == null) ? null : listeners.map(toNiceFocusListener); } *************** *** 145,149 **** { EventListener[?] listeners = this.getListeners(HierarchyBoundsListener.class); ! return (listeners == null) ? null : fill(new NiceHierarchyBoundsListener[listeners.length], int i => listeners[i].toNiceHierarchyBoundsListener()); } --- 145,149 ---- { EventListener[?] listeners = this.getListeners(HierarchyBoundsListener.class); ! return (listeners == null) ? null : listeners.map(toNiceHierarchyBoundsListener); } *************** *** 151,155 **** { EventListener[?] listeners = this.getListeners(HierarchyListener.class); ! return (listeners == null) ? null : fill(new NiceHierarchyListener[listeners.length], int i => listeners[i].toNiceHierarchyListener()); } --- 151,155 ---- { EventListener[?] listeners = this.getListeners(HierarchyListener.class); ! return (listeners == null) ? null : listeners.map(toNiceHierarchyListener); } *************** *** 157,161 **** { EventListener[?] listeners = this.getListeners(InputMethodListener.class); ! return (listeners == null) ? null : fill(new NiceInputMethodListener[listeners.length], int i => listeners[i].toNiceInputMethodListener()); } --- 157,161 ---- { EventListener[?] listeners = this.getListeners(InputMethodListener.class); ! return (listeners == null) ? null : listeners.map(toNiceInputMethodListener); } *************** *** 163,167 **** { EventListener[?] listeners = this.getListeners(KeyListener.class); ! return (listeners == null) ? null : fill(new NiceKeyListener[listeners.length], int i => listeners[i].toNiceKeyListener()); } --- 163,167 ---- { EventListener[?] listeners = this.getListeners(KeyListener.class); ! return (listeners == null) ? null : listeners.map(toNiceKeyListener); } *************** *** 169,173 **** { EventListener[?] listeners = this.getListeners(MouseListener.class); ! return (listeners == null) ? null : fill(new NiceMouseListener[listeners.length], int i => listeners[i].toNiceMouseListener()); } --- 169,173 ---- { EventListener[?] listeners = this.getListeners(MouseListener.class); ! return (listeners == null) ? null : listeners.map(toNiceMouseListener); } *************** *** 175,179 **** { EventListener[?] listeners = this.getListeners(MouseMotionListener.class); ! return (listeners == null) ? null : fill(new NiceMouseMotionListener[listeners.length], int i => listeners[i].toNiceMouseMotionListener()); } --- 175,179 ---- { EventListener[?] listeners = this.getListeners(MouseMotionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceMouseMotionListener); } Index: SwingListenerAccessors.nice =================================================================== RCS file: /cvsroot/nice/swing/src/nice/ui/common/SwingListenerAccessors.nice,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** SwingListenerAccessors.nice 13 Nov 2002 02:22:28 -0000 1.3 --- SwingListenerAccessors.nice 21 Nov 2003 18:56:28 -0000 1.4 *************** *** 85,89 **** { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : fill(new NiceActionListener[listeners.length], int i => listeners[i].toNiceActionListener()); } --- 85,89 ---- { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceActionListener); } *************** *** 91,95 **** { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : fill(new NiceActionListener[listeners.length], int i => listeners[i].toNiceActionListener()); } --- 91,95 ---- { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceActionListener); } *************** *** 97,101 **** { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : fill(new NiceActionListener[listeners.length], int i => listeners[i].toNiceActionListener()); } --- 97,101 ---- { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceActionListener); } *************** *** 103,107 **** { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : fill(new NiceActionListener[listeners.length], int i => listeners[i].toNiceActionListener()); } --- 103,107 ---- { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceActionListener); } *************** *** 109,113 **** { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : fill(new NiceActionListener[listeners.length], int i => listeners[i].toNiceActionListener()); } --- 109,113 ---- { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceActionListener); } *************** *** 115,119 **** { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : fill(new NiceActionListener[listeners.length], int i => listeners[i].toNiceActionListener()); } --- 115,119 ---- { EventListener[?] listeners = this.getListeners(ActionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceActionListener); } *************** *** 121,125 **** { EventListener[?] listeners = this.getListeners(ItemListener.class); ! return (listeners == null) ? null : fill(new NiceItemListener[listeners.length], int i => listeners[i].toNiceItemListener()); } --- 121,125 ---- { EventListener[?] listeners = this.getListeners(ItemListener.class); ! return (listeners == null) ? null : listeners.map(toNiceItemListener); } *************** *** 127,131 **** { EventListener[?] listeners = this.getListeners(ItemListener.class); ! return (listeners == null) ? null : fill(new NiceItemListener[listeners.length], int i => listeners[i].toNiceItemListener()); } --- 127,131 ---- { EventListener[?] listeners = this.getListeners(ItemListener.class); ! return (listeners == null) ? null : listeners.map(toNiceItemListener); } *************** *** 133,137 **** { EventListener[?] listeners = this.getListeners(ItemListener.class); ! return (listeners == null) ? null : fill(new NiceItemListener[listeners.length], int i => listeners[i].toNiceItemListener()); } --- 133,137 ---- { EventListener[?] listeners = this.getListeners(ItemListener.class); ! return (listeners == null) ? null : listeners.map(toNiceItemListener); } *************** *** 139,143 **** { EventListener[?] listeners = this.getListeners(AdjustmentListener.class); ! return (listeners == null) ? null : fill(new NiceAdjustmentListener[listeners.length], int i => listeners[i].toNiceAdjustmentListener()); } --- 139,143 ---- { EventListener[?] listeners = this.getListeners(AdjustmentListener.class); ! return (listeners == null) ? null : listeners.map(toNiceAdjustmentListener); } *************** *** 145,149 **** { EventListener[?] listeners = this.getListeners(CaretListener.class); ! return (listeners == null) ? null : fill(new NiceCaretListener[listeners.length], int i => listeners[i].toNiceCaretListener()); } --- 145,149 ---- { EventListener[?] listeners = this.getListeners(CaretListener.class); ! return (listeners == null) ? null : listeners.map(toNiceCaretListener); } *************** *** 151,155 **** { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : fill(new NiceChangeListener[listeners.length], int i => listeners[i].toNiceChangeListener()); } --- 151,155 ---- { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : listeners.map(toNiceChangeListener); } *************** *** 157,161 **** { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : fill(new NiceChangeListener[listeners.length], int i => listeners[i].toNiceChangeListener()); } --- 157,161 ---- { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : listeners.map(toNiceChangeListener); } *************** *** 163,167 **** { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : fill(new NiceChangeListener[listeners.length], int i => listeners[i].toNiceChangeListener()); } --- 163,167 ---- { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : listeners.map(toNiceChangeListener); } *************** *** 169,173 **** { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : fill(new NiceChangeListener[listeners.length], int i => listeners[i].toNiceChangeListener()); } --- 169,173 ---- { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : listeners.map(toNiceChangeListener); } *************** *** 175,179 **** { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : fill(new NiceChangeListener[listeners.length], int i => listeners[i].toNiceChangeListener()); } --- 175,179 ---- { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : listeners.map(toNiceChangeListener); } *************** *** 181,185 **** { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : fill(new NiceChangeListener[listeners.length], int i => listeners[i].toNiceChangeListener()); } --- 181,185 ---- { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : listeners.map(toNiceChangeListener); } *************** *** 187,191 **** { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : fill(new NiceChangeListener[listeners.length], int i => listeners[i].toNiceChangeListener()); } --- 187,191 ---- { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : listeners.map(toNiceChangeListener); } *************** *** 193,197 **** { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : fill(new NiceChangeListener[listeners.length], int i => listeners[i].toNiceChangeListener()); } --- 193,197 ---- { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : listeners.map(toNiceChangeListener); } *************** *** 199,203 **** { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : fill(new NiceChangeListener[listeners.length], int i => listeners[i].toNiceChangeListener()); } --- 199,203 ---- { EventListener[?] listeners = this.getListeners(ChangeListener.class); ! return (listeners == null) ? null : listeners.map(toNiceChangeListener); } *************** *** 205,209 **** { EventListener[?] listeners = this.getListeners(ListDataListener.class); ! return (listeners == null) ? null : fill(new NiceListDataListener[listeners.length], int i => listeners[i].toNiceListDataListener()); } --- 205,209 ---- { EventListener[?] listeners = this.getListeners(ListDataListener.class); ! return (listeners == null) ? null : listeners.map(toNiceListDataListener); } *************** *** 211,215 **** { EventListener[?] listeners = this.getListeners(ListSelectionListener.class); ! return (listeners == null) ? null : fill(new NiceListSelectionListener[listeners.length], int i => listeners[i].toNiceListSelectionListener()); } --- 211,215 ---- { EventListener[?] listeners = this.getListeners(ListSelectionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceListSelectionListener); } *************** *** 217,221 **** { EventListener[?] listeners = this.getListeners(ListSelectionListener.class); ! return (listeners == null) ? null : fill(new NiceListSelectionListener[listeners.length], int i => listeners[i].toNiceListSelectionListener()); } --- 217,221 ---- { EventListener[?] listeners = this.getListeners(ListSelectionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceListSelectionListener); } *************** *** 223,227 **** { EventListener[?] listeners = this.getListeners(AncestorListener.class); ! return (listeners == null) ? null : fill(new NiceAncestorListener[listeners.length], int i => listeners[i].toNiceAncestorListener()); } --- 223,227 ---- { EventListener[?] listeners = this.getListeners(AncestorListener.class); ! return (listeners == null) ? null : listeners.map(toNiceAncestorListener); } *************** *** 229,233 **** { EventListener[?] listeners = this.getListeners(HyperlinkListener.class); ! return (listeners == null) ? null : fill(new NiceHyperlinkListener[listeners.length], int i => listeners[i].toNiceHyperlinkListener()); } --- 229,233 ---- { EventListener[?] listeners = this.getListeners(HyperlinkListener.class); ! return (listeners == null) ? null : listeners.map(toNiceHyperlinkListener); } *************** *** 235,239 **** { EventListener[?] listeners = this.getListeners(InternalFrameListener.class); ! return (listeners == null) ? null : fill(new NiceInternalFrameListener[listeners.length], int i => listeners[i].toNiceInternalFrameListener()); } --- 235,239 ---- { EventListener[?] listeners = this.getListeners(InternalFrameListener.class); ! return (listeners == null) ? null : listeners.map(toNiceInternalFrameListener); } *************** *** 241,245 **** { EventListener[?] listeners = this.getListeners(MenuListener.class); ! return (listeners == null) ? null : fill(new NiceMenuListener[listeners.length], int i => listeners[i].toNiceMenuListener()); } --- 241,245 ---- { EventListener[?] listeners = this.getListeners(MenuListener.class); ! return (listeners == null) ? null : listeners.map(toNiceMenuListener); } *************** *** 247,251 **** { EventListener[?] listeners = this.getListeners(MenuDragMouseListener.class); ! return (listeners == null) ? null : fill(new NiceMenuDragMouseListener[listeners.length], int i => listeners[i].toNiceMenuDragMouseListener()); } --- 247,251 ---- { EventListener[?] listeners = this.getListeners(MenuDragMouseListener.class); ! return (listeners == null) ? null : listeners.map(toNiceMenuDragMouseListener); } *************** *** 253,257 **** { EventListener[?] listeners = this.getListeners(MenuKeyListener.class); ! return (listeners == null) ? null : fill(new NiceMenuKeyListener[listeners.length], int i => listeners[i].toNiceMenuKeyListener()); } --- 253,257 ---- { EventListener[?] listeners = this.getListeners(MenuKeyListener.class); ! return (listeners == null) ? null : listeners.map(toNiceMenuKeyListener); } *************** *** 259,263 **** { EventListener[?] listeners = this.getListeners(PopupMenuListener.class); ! return (listeners == null) ? null : fill(new NicePopupMenuListener[listeners.length], int i => listeners[i].toNicePopupMenuListener()); } --- 259,263 ---- { EventListener[?] listeners = this.getListeners(PopupMenuListener.class); ! return (listeners == null) ? null : listeners.map(toNicePopupMenuListener); } *************** *** 265,269 **** { EventListener[?] listeners = this.getListeners(TreeExpansionListener.class); ! return (listeners == null) ? null : fill(new NiceTreeExpansionListener[listeners.length], int i => listeners[i].toNiceTreeExpansionListener()); } --- 265,269 ---- { EventListener[?] listeners = this.getListeners(TreeExpansionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceTreeExpansionListener); } *************** *** 271,275 **** { EventListener[?] listeners = this.getListeners(TreeWillExpandListener.class); ! return (listeners == null) ? null : fill(new NiceTreeWillExpandListener[listeners.length], int i => listeners[i].toNiceTreeWillExpandListener()); } --- 271,275 ---- { EventListener[?] listeners = this.getListeners(TreeWillExpandListener.class); ! return (listeners == null) ? null : listeners.map(toNiceTreeWillExpandListener); } *************** *** 277,281 **** { EventListener[?] listeners = this.getListeners(TreeSelectionListener.class); ! return (listeners == null) ? null : fill(new NiceTreeSelectionListener[listeners.length], int i => listeners[i].toNiceTreeSelectionListener()); } --- 277,281 ---- { EventListener[?] listeners = this.getListeners(TreeSelectionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceTreeSelectionListener); } *************** *** 283,287 **** { EventListener[?] listeners = this.getListeners(TreeSelectionListener.class); ! return (listeners == null) ? null : fill(new NiceTreeSelectionListener[listeners.length], int i => listeners[i].toNiceTreeSelectionListener()); } --- 283,287 ---- { EventListener[?] listeners = this.getListeners(TreeSelectionListener.class); ! return (listeners == null) ? null : listeners.map(toNiceTreeSelectionListener); } *************** *** 289,293 **** { EventListener[?] listeners = this.getListeners(TreeModelListener.class); ! return (listeners == null) ? null : fill(new NiceTreeModelListener[listeners.length], int i => listeners[i].toNiceTreeModelListener()); } --- 289,293 ---- { EventListener[?] listeners = this.getListeners(TreeModelListener.class); ! return (listeners == null) ? null : listeners.map(toNiceTreeModelListener); } |
From: <bo...@us...> - 2003-11-21 16:21:24
|
Update of /cvsroot/nice/Nice/testsuite In directory sc8-pr-cvs1:/tmp/cvs-serv27410/testsuite Added Files: .cvsignore Log Message: Ignore a local temp directory, to hold temporary testcases. --- NEW FILE: .cvsignore --- temp |