# File lib/puppet/parser/ast/collection.rb, line 15
15:     def evaluate(scope)
16:         if self.query
17:             str, code = self.query.safeevaluate scope
18:         else
19:             str = code = nil
20:         end
21: 
22:         newcoll = Puppet::Parser::Collector.new(scope, @type, str, code, self.form)
23: 
24:         scope.compiler.add_collection(newcoll)
25: 
26:         # overrides if any
27:         # Evaluate all of the specified params.
28:         if @override
29:             params = @override.collect do |param|
30:                 param.safeevaluate(scope)
31:             end
32: 
33:             newcoll.add_override(
34:                 :params => params,
35:                 :file => @file,
36:                 :line => @line,
37:                 :source => scope.source,
38:                 :scope => scope
39:             )
40:         end
41: 
42:         newcoll
43:     end