1
0
Fork 0
Commit Graph

394 Commits (7822f120ca681760d83fa9166073b8fc4e6878f2)

Author SHA1 Message Date
Mike Gerwitz 4e2af2333d [#25] Now injecting MemberBuilderValidator into MemberBuilder 2011-11-02 23:28:23 -04:00
Mike Gerwitz 3912f2d369 [#25] Began refactoring test-class_builder-static into new test case system 2011-11-02 23:23:13 -04:00
Mike Gerwitz b063a91e40 [#25] Added visibility de-escalation and escalation tests to MemberBuilderValidator for getters/setters 2011-10-30 12:06:09 -04:00
Mike Gerwitz 91332353e9 [#25] Added attachInstanceOf TODO 2011-10-30 11:56:54 -04:00
Mike Gerwitz 3c676de55d [#25] Combined buildGetter() and buildSetter()
This helped to get rid of some unnecessary duplicate code and should also help
to improve performance slightly for getter/setter definitions.
2011-10-29 08:25:51 -04:00
Mike Gerwitz 02cd52cfb7 [#25] Began refactoring getter/setter building into a single method (util.propParse)
I'm unsure as to why I originally placed them in separate methods. propParse() will
always find a getter at the same time it finds a setter, and vice versa, should they
both have been defined on the object.
2011-10-29 08:08:02 -04:00
Mike Gerwitz 2ba8e2c8f0 [#25] Refactored common getter/setter code into common method within MemberBuilder 2011-10-29 07:47:22 -04:00
Mike Gerwitz 93021f3dbc [#25] Moved getter/setter validation tests into new test case
Much more elegant a test case now.
2011-10-28 00:22:50 -04:00
Mike Gerwitz ad0343fb9b [#25] Moved getter/setter validation logic into MemberBuilderValidator
- Tests have not yet been moved
2011-10-28 00:08:22 -04:00
Mike Gerwitz 05df0b485c [#25] Moved single access modifier getter/setter test to VisibilityTest 2011-10-27 20:46:30 -04:00
Mike Gerwitz f19a62e733 [#25] Moved public default getter/setter test to new location 2011-10-27 20:43:56 -04:00
Mike Gerwitz f4b8eb3589 [#25] Added test in MemberBuilder/VisibilityTest to ensure multiple access modifiers are not used 2011-10-25 23:30:57 -04:00
Mike Gerwitz 625f62bbf1 [#25] Moved MemberBuilderValidator property tests into new test case 2011-10-23 01:14:13 -04:00
Mike Gerwitz a91cb01998 [#25] Moved MethodBuilder property validation into MemberBuilderValidator
- Tests have not yet been moved
2011-10-23 00:43:08 -04:00
Mike Gerwitz a5e2a507f2 [#25] Throwing error instead of method hiding; will implement in future 2011-10-22 13:57:17 -04:00
Mike Gerwitz 6e7e031ff9 [#25] [#25] Re-added accidently removed portion of test 2011-10-22 11:06:03 -04:00
Mike Gerwitz f9b951ddb2 [#25] [#25] Began moving MemberBuilder validation rules into MemberBuilderValidator (moved method rules) 2011-10-22 01:00:45 -04:00
Mike Gerwitz e6830b741f [#25] Now using keywords to compare visibility levels in validations to eliminiate fallback inconsistencies
Ironic, considering the current refactoring (not yet committed) of MemberBuilder to split validation logic into MemberBuilderValidator was partially to be able to easily override the fallback logic. It's a useful refactoring nonetheless, but it could have waited.
2011-10-22 00:32:59 -04:00
Mike Gerwitz f6369ba2c4 [#25] No longer using util.isAbstractMethod() for method validation 2011-10-22 00:13:51 -04:00
Mike Gerwitz 9c9759a2b1 Moved validateMethod() function into MemberBuilder prototype to prepare for overriding with FallbackMemberBuilder 2011-10-14 22:14:29 -04:00
Mike Gerwitz 024f3b778c Began adding FallbackMemberBuilder test case
This is the first test case to use the new basic xUnit-style system. This
system is likely to evolve over time. Right now it's purely for
setUp, organizational and output purposes.
2011-10-14 22:05:22 -04:00
Mike Gerwitz 24e9dd2549 Oops. Dummy want to name things correctly? (#25) 2011-09-02 22:44:11 -04:00
Mike Gerwitz bc636637cc Refactored new and override method wrappers into separate prototypes
- Note that, since we're mid-refactor, this is a bit of a mess
2011-08-31 00:24:19 -04:00
Mike Gerwitz ce1370e025 Now passing getInst() directly into MethodwrapperFactory factory function, like good 'ol times
- I seem to have forgotten that this is necessary due to the static implementation
2011-08-31 00:05:07 -04:00
Mike Gerwitz 3c5362db0a Added MethodWrapperFactory prototype
- Not yet used
2011-08-28 17:36:27 -04:00
Mike Gerwitz 2efdbe8969 Added missing MemberBuilder docblocks (#25) 2011-08-27 17:08:05 -04:00
Mike Gerwitz 302bc1540b Removed old member_builder module 2011-08-14 18:53:40 -04:00
Mike Gerwitz 758162ad0f Began refactoring member_builder module into MemberBuilder prototype (#25) 2011-08-14 18:47:48 -04:00
Mike Gerwitz fd95f38c87 Integrated VisibilityObjectFactory and removed old propobj (#25)
- Note that the excessive gluing is temporary
2011-08-13 23:58:08 -04:00
Mike Gerwitz f3352e6d74 Added VisibilityObjectFactoryFactory (#25)
- This may be temporary, depending on the ultimate implementation. This is intended to ease into the refactoring.
2011-08-13 23:00:03 -04:00
Mike Gerwitz b4b09930bd Added property object comment to VisibilityObjectFactory (#25) 2011-08-13 22:42:51 -04:00
Mike Gerwitz 567c9f59a0 Implemented FallbackVisibilityObjectFactory (#25) 2011-08-13 22:42:33 -04:00
Mike Gerwitz 79652a1120 Moved non-fallback visibility object into VisibilityObjectFactory (system does not yet use it) (#25) 2011-08-11 23:11:37 -04:00
Mike Gerwitz 7a579ab2aa Initial refactoring of class_builder module into ClassBuilder ctor (#25) 2011-08-09 17:27:26 -04:00
Mike Gerwitz a401c31996 Can no longer override non-virtual methods (#19) 2011-08-04 00:44:20 -04:00
Mike Gerwitz 2569dacf15 Override keyword is now required to override a virtual method (#19) 2011-08-04 00:32:10 -04:00
Mike Gerwitz bd4e18acc6 Implicit method hiding warning now applies to virtual methods as well as non-virtual (#19) 2011-08-03 22:40:55 -04:00
Mike Gerwitz db18a61d30 [#19] Began implementing method hiding (added warning for implicit hiding) 2011-07-06 19:35:00 -04:00
Mike Gerwitz bc3e879956 Corrected Warning stack trace 2011-07-06 19:12:08 -04:00
Mike Gerwitz 1b1a4b60d5 Altered warning display and stack trace 2011-07-06 17:55:40 -04:00
Mike Gerwitz 81fa2ae424 Merge branch 'master' into 'virtual/master'
- Resolved conflicts
2011-06-30 23:00:13 -04:00
Mike Gerwitz adb7e088b7 [#19] Cannot declare virtual static methods 2011-06-09 22:22:14 -04:00
Mike Gerwitz 08dc2559b4 [#19] Cannot declare virtual properties 2011-06-09 19:46:13 -04:00
Mike Gerwitz 4fea62a8ed [#19] Removed 'final' keyword and all associated logic
- Kept FinalClass'
2011-06-08 01:26:04 -04:00
Mike Gerwitz 8b83e85c43 [#19] Implemented 'virtual' keyword
- Baby steps. 'override' keyword is not yet necessary.
- Final not yet removed
2011-06-08 01:11:53 -04:00
Mike Gerwitz 24a04369ae Properly copying over abstract methods in implement() 2011-06-08 01:10:44 -04:00
Mike Gerwitz 557dcf6904 Fixed static bug and removed late static binding
- Late static binding will be revisited in the future
2011-05-31 22:29:07 -04:00
Mike Gerwitz 9db4e8d99f Supplying alternative to getMethodInstance() for static methods 2011-05-30 23:03:08 -04:00
Mike Gerwitz 85c4c70b7d Removed unneeded argument 2011-05-30 20:10:52 -04:00
Mike Gerwitz 76bc7361d3 Implemented GH#2 - Keyword restrictions; throw exception when unknown keywords are used 2011-05-22 22:11:57 -04:00
Mike Gerwitz cf344186fc Implement GH#1 Provide useful error when attempting to extend from non-constructor 2011-05-22 21:54:41 -04:00
Mike Gerwitz 8c62ee021c Added support for final subtypes 2011-05-22 21:35:29 -04:00
Mike Gerwitz a67d704837 Added support for named abstract subclasses 2011-05-22 21:05:46 -04:00
Mike Gerwitz db9de2712e Added class_abstract docblocks 2011-05-22 19:15:19 -04:00
Mike Gerwitz e0de030cee Implemented AbstractClass
- Some of this functionality requires further refactoring
2011-05-22 16:08:48 -04:00
Mike Gerwitz b359906aa3 Refactored method validations into separate method 2011-05-22 11:25:15 -04:00
Mike Gerwitz 9690663d1c Added support for final classes
- This commit was originally many. Unfortunately, certain Git objects became
  corrupt shortly after my 500th commit due to HDD issues. Due to the scope, I
  was unable to recover the set of commits I needed (after an hour of trying
  every method).
  - Fortunately, vim's swap files came to the rescue. Had I been able to
    properly shut down my PC, I would have been rather frustrated.
2011-05-22 11:19:51 -04:00
Mike Gerwitz 6e1d796092 Implemented constant properties 2011-05-19 19:48:51 -04:00
Mike Gerwitz 2d91a221aa Const keyword now results in static property 2011-05-19 19:07:31 -04:00
Mike Gerwitz 030bdef821 Static keyword cannot be used with const for properties 2011-05-19 18:30:55 -04:00
Mike Gerwitz f3c1d0f9af Methods cannot be declared as constant 2011-05-19 07:54:51 -04:00
Mike Gerwitz 0c5293991c Disallowed use of final keyword with properties 2011-05-18 20:51:02 -04:00
Mike Gerwitz f47fcf4f46 Simplified and enhanced util.freeze() 2011-05-15 19:12:24 -04:00
Mike Gerwitz 4c74f2a1f2 Added final keyword for methods 2011-05-15 19:11:23 -04:00
Mike Gerwitz 775438c1b6 Implemented private static properties 2011-05-13 00:55:09 -04:00
Mike Gerwitz 9b20cdff48 Initial concept for protected static property access 2011-05-12 00:25:34 -04:00
Mike Gerwitz 9067bbf0cf Static property accessor method is no longer enumerable 2011-05-11 20:53:43 -04:00
Mike Gerwitz fa8d1bebe1 Implemented private static methods 2011-05-11 20:10:10 -04:00
Mike Gerwitz a303adddea Added tests to ensure that static method overrides are supported 2011-05-11 18:36:49 -04:00
Mike Gerwitz 9822894eae Protected static methods are now inherited by subtypes 2011-05-11 17:56:48 -04:00
Mike Gerwitz d542f9d803 Extendig concrete classes should no longer consume an instance id unnecessarily
- This is not tested because it would be testing too closely to the implementation
2011-05-10 23:35:43 -04:00
Mike Gerwitz 6325b0cf17 [Cleanup] Removed unused arguments from concrete ctor 2011-05-10 23:32:13 -04:00
Mike Gerwitz 91a47e4dcd [Bug Fix] Concrete class constructor is no longer invoked on extend
- The ctor must be instantiated for use in the prototype chain
- This was working in the past, but apparently no test existed for it and
  refactoring broke it
2011-05-10 23:32:13 -04:00
Mike Gerwitz 3c774a7b16 Implemented protected static members within static methods
- Still not inheritence
2011-05-10 19:54:23 -04:00
Mike Gerwitz a246dd67e0 Began adding protected static members (supported for instance methods)
- No inheritance support yet
2011-05-09 23:09:32 -04:00
Mike Gerwitz c980a59273 Comment correction for static members 2011-04-14 20:28:42 -04:00
Mike Gerwitz 26cf32abe5 Enhanced static property setter to support setting to both undefined and null values 2011-04-13 23:53:03 -04:00
Mike Gerwitz 462671cfba Can no longer set values of undeclared static properties 2011-04-13 23:45:26 -04:00
Mike Gerwitz 7e53df0e84 Static property setter now returns calling class 2011-04-13 23:35:54 -04:00
Mike Gerwitz e3c526b89d Writes to public static properties now work properly 2011-04-13 23:06:24 -04:00
Mike Gerwitz 44cd8db82d Began implementing static property method (getter) 2011-04-13 22:38:05 -04:00
Mike Gerwitz 143348d390 propobj doSetup() param doc fix 2011-04-13 19:53:22 -04:00
Mike Gerwitz 63a4f95f65 Fix for overriding protected with protected
- A better solution may be explored
2011-04-13 14:48:20 -04:00
Mike Gerwitz 4a90b7b809 Public static properties references are now shared with subtypes 2011-04-10 22:32:46 -04:00
Mike Gerwitz aead20290c Inherited static members are no longer copied by reference
- Sharing values with supertype = bad
2011-04-05 23:47:44 -04:00
Mike Gerwitz 604e03fa55 util.clone() no longer falsely attempts to clone functions 2011-04-05 23:47:08 -04:00
Mike Gerwitz 4a0537223b Added deep copy to util.copyTo() 2011-04-05 23:38:13 -04:00
Mike Gerwitz fad503422e Subtypes now inherit public static members from their supertype 2011-04-05 23:11:25 -04:00
Mike Gerwitz a1ed610681 More efficient inheritance check for __initProps()'s __inst definition 2011-04-05 22:09:02 -04:00
Mike Gerwitz 7560d57619 Implemented __self for static access 2011-04-05 22:07:13 -04:00
Mike Gerwitz af53fe81b4 Added support for public static getters/setters 2011-04-05 00:08:39 -04:00
Mike Gerwitz 4d0724b85d Added util.copyTo() 2011-04-05 00:05:18 -04:00
Mike Gerwitz e93a4db3e4 Began implementing public static members 2011-04-04 23:07:01 -04:00
Mike Gerwitz 7a2640eb5d Removing unnecessary method reference (more post-refactor cleanup) 2011-04-04 22:42:09 -04:00
Mike Gerwitz 666d1df3fb Removed unused var from class_builder
- 'properties' var no longer used after prior refactoring
2011-04-04 22:42:04 -04:00
Mike Gerwitz dddd26761c Current __self -> __inst; __self will be used in a different manner in following commits 2011-04-03 11:57:15 -04:00
Mike Gerwitz 1abf127ccc Protected property values, when set by the parent, are now available to subtypes 2011-04-02 10:58:26 -04:00
Mike Gerwitz 0c48f00c74 Corrected documentation and default value for unless_exists in propobj's doSetup() 2011-04-02 10:31:39 -04:00
Mike Gerwitz 61f2f7e22d Methods can now be properly overridden when visibility is escalated 2011-04-01 06:28:45 -04:00
Mike Gerwitz 170eb06af6 Only adding __self() for instance, not supertype init 2011-03-30 23:31:46 -04:00