def pseudo_class_selector_message
      if @prop_syntax == :new ||
          custom_property? ||
          !value.first.is_a?(Sass::Script::Tree::Literal) ||
          !value.first.value.is_a?(Sass::Script::Value::String) ||
          !value.first.value.value.empty?
        return ""
      end

      "\nIf #{declaration.dump} should be a selector, use \"\\#{declaration}\" instead."
    end
def pseudo_class_selector_message
      if @prop_syntax == :new ||
          custom_property? ||
          !value.first.is_a?(Sass::Script::Tree::Literal) ||
          !value.first.value.is_a?(Sass::Script::Value::String) ||
          !value.first.value.value.empty?
        return ""
      end

      "\nIf #{declaration.dump} should be a selector, use \"\\#{declaration}\" instead."
    end
@param name [Array<String, Sass::Script::Tree::Node>] See \{#name}
 @param value [Array<String, Sass::Script::Tree::Node>] See \{#value}
 @param prop_syntax [Symbol] `:new` if this property uses `a: b`-style syntax,
   `:old` if it uses `:a b`-style syntax
 Compares the names and values of two properties.

 @param other [Object] The object to compare with
 @return [Boolean] Whether or not this node and the other object
   are the same
 Returns a appropriate message indicating how to escape pseudo-class selectors.
 This only applies for old-style properties with no value,
 so returns the empty string if this is new-style.

 @return [String] The message