Skip to content

Commit

Permalink
Context.onMacroContextReused is no longer needed for Haxe 4
Browse files Browse the repository at this point in the history
  • Loading branch information
andyli committed Dec 2, 2018
1 parent 26153fc commit c27aea6
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions src/CompileTime.hx
Expand Up @@ -122,21 +122,23 @@ class CompileTime
macro public static function getAllClasses<T>(?inPackage:String, ?includeChildPackages:Bool = true, ?extendsBaseClass:ExprOf<Class<T>>):ExprOf<Iterable<Class<T>>> {

// Add the onGenerate function to search for matching classes and add them to our metadata.
// Make sure we run it once per-compile, not once per-controller-per-compile.
// Also ensure that it is re-run for each new compile if using the compiler cache.
Context.onMacroContextReused(function () {
allClassesSearches = new Map();
return true;
});
if ( Lambda.count(allClassesSearches)==0 ) {
Context.onGenerate(checkForMatchingClasses);
}
// Make sure we run it once per-compile, not once per-controller-per-compile.
// Also ensure that it is re-run for each new compile if using the compiler cache.
#if (haxe_ver < 4.0)
Context.onMacroContextReused(function () {
allClassesSearches = new Map();
return true;
});
#end
if ( Lambda.count(allClassesSearches)==0 ) {
Context.onGenerate(checkForMatchingClasses);
}

// Add the search to our static var so we can get results during onGenerate
var baseClass:ClassType = getClassTypeFromExpr(extendsBaseClass);
var baseClassName:String = (baseClass == null) ? "" : baseClass.pack.join('.') + '.' + baseClass.name;
var listID = '$inPackage,$includeChildPackages,$baseClassName';
allClassesSearches[listID] = {
allClassesSearches[listID] = {
inPackage: inPackage,
includeChildPackages: includeChildPackages,
baseClass: baseClass
Expand Down

0 comments on commit c27aea6

Please sign in to comment.