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