0.34.0
Features
ClassDescriptorGenerator
generate class descriptors recursively at compile time.
var classDescriptor = ClassDescriptorGenerator.generate( HexUnitSuite );
#genhexunit
compiler argument added to activate unit test compile time features.CommandTrigger
handles local variable injection with@Optional
(parameters are working as well with static var replacement)MacroUtil.getClassName
added.MacroUtil.compressField
added.
Breaking change
- Dataprovider's API uses only one argument.
This...
public static var namedAndUnnamedParametersConstructorDataProvider:Array<Array<Dynamic>> = [
[MixedParametersConstructorInjectee],
[MixedParametersConstructorInjecteeConst],
[MixedParametersConstructorInjecteeConstOutside],
[MixedParametersConstructorInjecteeConstOutsideFQCN]
];
... becomes now:
public static var namedAndUnnamedParametersConstructorDataProvider:Array<Class<Dynamic>> = [
MixedParametersConstructorInjectee,
MixedParametersConstructorInjecteeConst,
MixedParametersConstructorInjecteeConstOutside,
MixedParametersConstructorInjecteeConstOutsideFQCN
];
Enhancements
- Unit test framework refactoring. Business logic extracted from data structures. (ClassDescriptor, MethodDescriptor...)
- ArrayUtil cleaned, no more short lambda macro emulation.
- AsyncResponder class removed.
- We don't print anymore reflection data in exported code except with
#debugReflection
compiler argument. - Old annotation system removed (13 classes).
- Old injectors classes removed. (44 classes).
- During reflection merging we get rid of duplicated existing data and we keep super constructor data only if there's no constructor data available.
- Injector generated methods are saved from DCE.
- Useless php/conditional removed in
Injector
class. - Macro code coverage with enum injection. (24 tests)
Bugfixes
MacroUtil.getFQCNFromComplexType
doesn't handle class with packaged type parameters belonging to another module.MacroUtil.getFQCNFromComplexType
doesn't return right fully qualified type for method closure without arguments.- Method reflection doesn't cover specific signatures #247
ReflectionBuilder
uses class name instead of module's name.- Conflict between
IsLoggable
andIInjectable
when they extend the same interface. #245 @Optional
is set to false when it has no value- Injectors cannot handle function argument correctly as a constructor dependency. #247
- Missing mapping exceptions are not thrown with the new injector in specific situations.
@lazy
needs to be@public
to work. #251- Abstract type is not used for local variables. #253
CommandTriggerBuilder
doesn't request reflection update for module and injector annotated properties.
Experimental
- hexCommand repository maintained and fine tuned to replace hexMVC soon.