[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch,	upstream, updated. 2.6.1rc1-141-gcdb2b90
    markus (none) 
    markus at AVA-351181.
       
    Mon Aug 16 12:48:47 UTC 2010
    
    
  
The following commit has been merged in the upstream branch:
commit 37568bdd3f8cc3514eb9d0bf0eae3302686bc13d
Author: Jesse Wolfe <jes5199 at gmail.com>
Date:   Mon Aug 2 20:54:59 2010 -0700
    [#4423] class { shouldn't get stored on the namespace stack
    
    The new syntax for instantiating parameterized classes was confusing the
    lexer's notion of namespaces.
    This is a simple fix to prevent that syntax from polluting the
    namespaces.
diff --git a/lib/puppet/parser/lexer.rb b/lib/puppet/parser/lexer.rb
index aa04f17..24999bf 100644
--- a/lib/puppet/parser/lexer.rb
+++ b/lib/puppet/parser/lexer.rb
@@ -483,7 +483,7 @@ class Puppet::Parser::Lexer
       yield [final_token.name, token_value]
 
       if @previous_token
-        namestack(value) if @previous_token.name == :CLASS
+        namestack(value) if @previous_token.name == :CLASS and value != '{'
 
         if @previous_token.name == :DEFINE
           if indefine?
diff --git a/spec/unit/parser/lexer_spec.rb b/spec/unit/parser/lexer_spec.rb
index a85d1b2..bcf49ba 100755
--- a/spec/unit/parser/lexer_spec.rb
+++ b/spec/unit/parser/lexer_spec.rb
@@ -619,6 +619,12 @@ describe "Puppet::Parser::Lexer in the old tests" do
     @lexer.namespace.should == "base::sub"
   end
 
+  it "should not put class instantiation on the namespace" do
+    @lexer.string = "class base { class sub { class { mode"
+    @lexer.fullscan
+    @lexer.namespace.should == "base::sub"
+  end
+
   it "should correctly handle fully qualified names" do
     @lexer.string = "class base { class sub::more {"
     @lexer.fullscan
-- 
Puppet packaging for Debian
    
    
More information about the Pkg-puppet-devel
mailing list