You've removed the final method declarations for "apply" and "call" on
<interface name="class">, was this intended? This now allows to define
static apply and call methods on user-defined classes which in turn will
overwrite Function#{apply, call}.
This is also related to LPP-5930 and my change r16371 (LPP-8982,
LPP-8983, LPP-8986).
See test/compiler_errors/final-method-override-reserved.lzx for a test
case. It should report 15 compiler warnings, in current trunk it's only
8 and and in two errors the "lfc.lzx" schema file is referred instead of
the actual erroneous lines in the test case.
------------------------------------------------------------------------
r17548 | ptw | 2010-09-22 16:17:49 +0200 (Wed, 22 Sep 2010) | 58 lines
Changed paths:
M /openlaszlo/trunk/WEB-INF/lps/schema/lfc-undeclared.lzx
M
/openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/AttributeSpec.java
M
/openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassCompiler.java
M
/openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassModel.java
M
/openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
M
/openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java
M
/openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/InterfaceCompiler.java
M
/openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/MixinCompiler.java
M
/openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java
M
/openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/Parser.java
M
/openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java
M
/openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/TypeCompiler.java
M
/openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ViewCompiler.java
M
/openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ViewSchema.java
M
/openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/js2doc/SchemaBuilder.java
M
/openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/xml/internal/Schema.java
Change ptw-20100920-Zt6 by [email protected] on 2010-09-20 12:45:21 EDT
in /Users/ptw/OpenLaszlo/trunk
for http://svn.openlaszlo.org/openlaszlo/trunk
Summary: Remodularize LZX class compilation to support types
Bugs Fixed: LPP-7354 Presentation Types (partial)
Technical Reviewer: [email protected] (Message-ID:
<[email protected]>)
QA Reviewer: [email protected] (Message-ID:
<[email protected]>)
Overview:
Disentangled ClassModel from ViewSchema and created a separate
class table for classes that implement <type> as opposed to
<class>.
Details:
lfc-undeclared: interface/mixin/class are really meta-tags, not
subclasses of node. Permit <anonymous> nodes in <node>. Permit
<interface> and <type> in <canvas>
SchemaBuilder, ClassCompiler, ViewCompiler, TypeCompiler,
MixinCompiler, ToplevelCompiler, InterfaceCompiler,
CompilationEnvironment, Parser: Update to use symbolic constants,
new API's.
Schema: Remove DEFAULT_SCHEMA and getTypeAttribute protocol (moved
to ClassModel).
ViewSchema: Move all class modelling to ClassModel. Add separate
table for <type> classes. Remove lots of unused cruft. Fix total
brain-oh in resolveClassModels to actually resolve classes in
dependency order. Simplify detection and checking of built-in
classes. Simplify containment checking by merging
forbidden//tagset of superclasses. Make event property of
<method> obsolete.
NodeModel: Use metaclass model, cache isclassdef. Inline
discovery of parentClassModel rather than trampolining through
ViewSchema. Inherit initstage. Simplify totalSubnodes
computation. Simplify attribute type computation. Handle
user-defined <type>s.
Compiler: Look for <type>s.
AttributeSpec: Store final as a boolean
ClassModel: Cache more predicates. Remove unused crud.
Generalize to support type implementations. Improve sortKey and
compareTo so classes can actually be sorted in dependency order.
Inherit predicates and contain/forbidded tags from superclass.
Move class modelling stuff from ViewSchema here.
Tests:
ant lztest, smokecheck X all runtimes, selected demo X runtime
combinations
------------------------------------------------------------------------