Дротик перекрывающий унарный минус оператор

Согласно спецификации языка (10.1.1 Операторы) я пытаюсь переопределить некоторые операторы.

Я получаю сообщение об ошибке анализатора при переопределении операторов "минус" и "унарный минус", которые я не получаю:

"Оператор"-"не определен для отступа класса"

но в классе я определил это:

  Indentation operator -() {
    level--;
    return this;
  }

и я использую это как myInstance--; и это на самом деле работает, но анализатор все еще жалуется, и я не могу отправить код "чистый" из-за ошибки.

Я искал старую ветку ( почему переопределение отрицания вызывает статическое предупреждение в Dart), но я думаю, что оно здесь не актуально.

Любой совет приветствуется.

1 ответ

Решение

--x такой же как x -= 1, Чтобы использовать его, вы должны определить operator -(p) (не operator -())

Indentation operator -(n) => new Indentation(level - n);
Другие вопросы по тегам