anchor.diff:   * DirectiveSelector is used by the [Compiler] during the template walking
    * to extract the [DirectiveRef]s.
    *
  - * DirectiveSelector can be created using the [directiveSelectorFactory]
  - * method.
  + * DirectiveSelector can be created using the [DirectiveSelectorFactory].
    *
    * The DirectiveSelector supports CSS selectors which do not cross
    * element boundaries only. The selectors can have any mix of element-name,
  
positive.code:  *
   * Examples:
   *
   * <pre>
   *   element
   *   .class
   *   [attribute]
   *   [attribute=value]
   *   element[attribute1][attribute2=value]
   *   :contains(/abc/)
   * </pre>
   *
   *
   */
  class _Directive {
    final Type type;
    final Directive annotation;
  
negative.code: 
    toString() => annotation.selector;
  }
  
  class _ContainsSelector {
    final Directive annotation;
  