1
0
Fork 0
easejs/test
Mike Gerwitz 3005cda543 Support for stacked mixins
The concept of stacked traits already existed in previous commits, but until
now, mixins could not be stacked without some ugly errors. This also allows
mixins to be stacked atop of themselves, duplicating their effect. This
would naturally have limited use, but it's there.

This differs slightly from Scala. For example, consider this ease.js mixin:

  C.use( T ).use( T )()

This is perfectly valid---it has the effect of stacking T twice. In reality,
ease.js is doing this:

  - C' = C.use( T );
  - new C'.use( T );

That is, it each call to `use' creates another class with T mixed in.

Scala, on the other hand, complains in this situation:

  new C with T with T

will produce an error stating that "trait T is inherited twice". You can
work around this, however, by doing this:

  class Ca extends T
  new Ca with T

In fact, this is precisely what ease.js is doing, as mentioned above; the
"use.use" syntax is merely shorthand for this:

  new C.use( T ).extend( {} ).use( T )

Just keep that in mind.
2014-03-15 21:16:27 -04:00
..
Class Added test case for visibility escalation internally 2014-03-15 21:16:26 -04:00
ClassBuilder Validation warnings now stored in state object 2014-03-15 21:16:26 -04:00
Interface [copyright] Copyright update 2014-01-20 22:55:29 -05:00
MemberBuilder Validation warnings now stored in state object 2014-03-15 21:16:26 -04:00
MemberBuilderValidator Warning no longer issued when overriding weak method appearing later in dfn obj 2014-03-15 21:16:26 -04:00
Trait Support for stacked mixins 2014-03-15 21:16:27 -04:00
Util Added support for abstract overrides 2014-03-15 21:16:27 -04:00
perf [no-copyright] Modified headers to reduce GPL license notice width 2014-01-15 23:56:00 -05:00
CombinePreEs5Test.js [copyright] Copyright update 2014-01-20 22:55:29 -05:00
CombineTest.js [copyright] Copyright update 2014-01-20 22:55:29 -05:00
FallbackMemberBuilderTest.js [no-copyright] Modified headers to reduce GPL license notice width 2014-01-15 23:56:00 -05:00
FallbackVisibilityObjectFactoryTest.js [no-copyright] Modified headers to reduce GPL license notice width 2014-01-15 23:56:00 -05:00
IndexTest.js [copyright] Copyright update 2014-01-20 22:55:29 -05:00
MethodWrapperFactoryTest.js [no-copyright] Modified headers to reduce GPL license notice width 2014-01-15 23:56:00 -05:00
MethodWrappersTest.js Began implementing virtual trait methods 2014-03-15 21:16:26 -04:00
PropParserKeywordsTest.js Added support for `weak' keyword 2014-03-07 00:47:43 -05:00
VersionTest.js [no-copyright] Modified headers to reduce GPL license notice width 2014-01-15 23:56:00 -05:00
VisibilityObjectFactoryFactoryTest.js [no-copyright] Modified headers to reduce GPL license notice width 2014-01-15 23:56:00 -05:00
VisibilityObjectFactoryTest.js [bug fix] Corrected bug with implicit visibility escalation 2014-03-15 21:16:26 -04:00
WarnHandlersTest.js [copyright] Copyright update 2014-01-20 22:55:29 -05:00
WarnTest.js [copyright] Copyright update 2014-01-20 22:55:29 -05:00
WarningTest.js [copyright] Copyright update 2014-01-20 22:55:29 -05:00
common.js [no-copyright] Modified headers to reduce GPL license notice width 2014-01-15 23:56:00 -05:00
inc-testcase.js [copyright] Copyright update 2014-01-20 22:55:29 -05:00
runner.in Added test/runner to run individual test cases 2014-02-14 00:41:49 -05:00
runner.js [no-copyright] Modified headers to reduce GPL license notice width 2014-01-15 23:56:00 -05:00
test-rmtrail rmtrail now handles single-line comments following trailing comma 2014-03-07 00:47:28 -05:00