/// <summary>
        /// Creates and validates any enqueued base-class generators that were enqueued.
        /// </summary>
        public void CreateBaseClassGenerators(ModuleWeaver weaver)
        {
            var injectedTypes = new HashSet <TypeDefinition>(InjectGenerators.Select(gen => gen.InjectedType));

            while (baseGeneratorQueue.Count > 0)
            {
                var typedef = baseGeneratorQueue.Dequeue();
                if (!injectedTypes.Add(typedef))
                {
                    continue;
                }

                var gen = new InjectBindingGenerator(moduleDefinition, references, typedef, false);
                gen.Weaver = weaver;
                gen.Validate(errorReporter);
                InjectGenerators.Add(gen);
            }
        }
 public CompilerBinding(InjectBindingGenerator generator)
     : base(generator.Key, generator.MembersKey, generator.IsSingleton, generator.InjectedType.FullName)
 {
     this.generator = generator;
 }