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


------------------------------------------------------------------------

Reply via email to