diff --git a/lib/sass/script/parser.rb b/lib/sass/script/parser.rb index 311c1ef7..49edecd4 100644 --- a/lib/sass/script/parser.rb +++ b/lib/sass/script/parser.rb @@ -66,10 +66,14 @@ RUBY def funcall return paren unless name = try_tok(:ident) # An identifier without arguments is just a string - return Script::String.new(name.last) unless try_tok(:lparen) - args = arglist || [] - assert_tok(:rparen) - Script::Funcall.new(name.last, args) + unless try_tok(:lparen) + warn %Q{WARNING: Implicit strings are deprecated. '#{name.last}' was not quoted. Please add double quotes. E.g. "#{name.last}".} + Script::String.new(name.last) + else + args = arglist || [] + assert_tok(:rparen) + Script::Funcall.new(name.last, args) + end end def arglist diff --git a/test/sass/engine_test.rb b/test/sass/engine_test.rb index ce0b7ef6..b1467ed5 100755 --- a/test/sass/engine_test.rb +++ b/test/sass/engine_test.rb @@ -719,7 +719,9 @@ SASS end def test_inaccessible_functions - assert_equal("a {\n b: send(to_s); }\n", render("a\n b = send(to_s)")) + assert_warning %Q{WARNING: Implicit strings are deprecated. 'to_s' was not quoted. Please add double quotes. E.g. \"to_s\".} do + assert_equal("a {\n b: send(to_s); }\n", render("a\n b = send(to_s)")) + end assert_equal("a {\n b: public_instance_methods(); }\n", render("a\n b = public_instance_methods()")) end