.foo
  .bar
    &:hover
      bar: selector()
    foo: selector()
  qux: selector()

bar()
  .bar
    baz: selector()

.foo
  bar()

.foo,
.bar
  baz: selector()

{selector()}
  content: "this won't render"

.foo{selector()}
  baz: selector()

bar()

broken()
  x = selector
  {x}
    foo: selector()

broken
  broken()

foo() {
  {selector()} {
    .bar {
        baz: selector()
        &:hover {
          foo: selector()
        }
    }
  }
}

.foo {
  foo()
}

.foo {
  baz: selector('&:hover')
  baz: selector('li a')
  baz: selector('&:hover, &:active')
}

.foo {
  .bar {
    .baz {
      baz: selector('^[0]:hover')
      baz: selector('^[1]:hover') == selector('../:hover')
      baz: selector('^[0] ^[1..1]:hover')
      baz: selector('^[2..2] ^[-1..1]:hover')
    }
  }
}

.foo
  & > .bar
    ^[0] ^[1..1],
    ^[1..1]
      test: selector('^[1..1]')

qux() {
  {selector()} {
    baz: selector('&__qux')
  }
}

.qux {
  qux()
}

.foo
.bar
  baz: selector('&:hover')
  bar = ''
  &:hover
    bar[0] = selector()
  baz: bar

.test
  color: red
  /{selector()}__foo
    border: 1px solid
    @extend .test
  /{selector()}__bar
    border-radius: 4px
    @extend .test

selector-list = '.a', '.b', '.c, .d'

{selector(selector-list)}
  color: red

{selector('.a', '.b', '^[0]:hover .e, ^[1]:hover .f')}
  color: green

{selector('.a' '.b' '.c')}
  color: blue
