@available(removed=N)
(ABI) {:#fi-0216}This is like fi-0205: Invalid @available(removed=N)
, but instead of the element's name being reused, its ABI is:
{% include “docs/reference/fidl/language/error-catalog/label/_bad.md” %}
{% includecode gerrit_repo="fuchsia/fuchsia" gerrit_path="tools/fidl/fidlc/tests/fidl/bad/fi-0216.test.fidl" exclude_regexp="\/\/ (Copyright 20|Use of|found in).*" %}
If you are intentionally replacing the element's ABI, make it explicit by using the arguments replaced
and renamed
instead of removed
:
{% include “docs/reference/fidl/language/error-catalog/label/_good.md” %}
{% includecode gerrit_repo="fuchsia/fuchsia" gerrit_path="tools/fidl/fidlc/tests/fidl/good/fi-0216-a.test.fidl" exclude_regexp="\/\/ (Copyright 20|Use of|found in).*" %}
If you did not intend to reuse the ABI, choose a different one. In this case, we can remove the @selector
attribute and use the method's default selector based on its name:
{% include “docs/reference/fidl/language/error-catalog/label/_good.md” %}
{% includecode gerrit_repo="fuchsia/fuchsia" gerrit_path="tools/fidl/fidlc/tests/fidl/good/fi-0216-b.test.fidl" exclude_regexp="\/\/ (Copyright 20|Use of|found in).*" %}
This error can occur for other members, not just methods. For bits and enum members, the ABI is the integer value. For struct members, the ABI is the byte offset. For table and union members, the ABI is the ordinal.
See FIDL versioning to learn more about versioning.