Completed
Details
Assignee
David MillerDavid MillerReporter
David MillerDavid MillerPriority
Major
Details
Details
Assignee
David Miller
David MillerReporter
David Miller
David MillerPriority

Created November 26, 2013 at 6:36 PM
Updated June 22, 2014 at 11:49 PM
Resolved June 22, 2014 at 11:49 PM
Noted here: https://groups.google.com/forum/#!topic/clojure/1HqVgklTb7w
From Brian Barnes:
Unfortunately, this line:
public static readonly Symbol FnOnceSym = (Symbol) Symbol.intern("fn*").withMeta(RT.map(Keyword.intern(null, "once"), true));
comes before this line:
static Dictionary<String, Type> _duplicateTypeMap = new Dictionary<string, Type>();
The evaluation of the first causes a call to the static method FindDuplicateType() within the same class, and this method uses the _duplicateTypeMap without a null check. This causes a null exception to be thrown because the initializer for _duplicateTypeMap hasn't executed yet.
My solution is to add a section at the very top of the Compiler class for "dependency" intializations - consisiting only of the initialization of _duplicateTypeMap at this point, to give a home to all such initializations that get used by the other static initializers.