Create the Tag enum for unions as a DERIVED location

We create internal Tag enums inside of unions for the descriminators.
We throw errors in some cases if those are handled in a backward
incompatible way.
We treat errors from INTERNAL locations as fatal errors and it causes
problems with our fuzzers.
Now we have a DERIVED location type for this case where we want the type
to be logged when there is a problem, but it is not an EXTERNAL type
from another aidl file.

Test: atest aidl_unittests
Bug: 402354469
Change-Id: I7a028b9c8040f6901750a0308238cc2ed7a830fa
6 files changed
tree: 1f0ab3e19ba950ce32dd95615d5b5d9d55cfe45e
  1. aidl_api/
  2. analyzer/
  3. build/
  4. include/
  5. metadata/
  6. scripts/
  7. tests/
  8. trace/
  9. aidl-format.sh
  10. aidl.cpp
  11. aidl.h
  12. aidl_checkapi.cpp
  13. aidl_checkapi.h
  14. aidl_const_expressions.cpp
  15. aidl_dumpapi.cpp
  16. aidl_dumpapi.h
  17. aidl_language.cpp
  18. aidl_language.h
  19. aidl_language_l.ll
  20. aidl_language_y.yy
  21. aidl_to_common.cpp
  22. aidl_to_common.h
  23. aidl_to_cpp.cpp
  24. aidl_to_cpp.h
  25. aidl_to_cpp_common.cpp
  26. aidl_to_cpp_common.h
  27. aidl_to_java.cpp
  28. aidl_to_java.h
  29. aidl_to_ndk.cpp
  30. aidl_to_ndk.h
  31. aidl_to_rust.cpp
  32. aidl_to_rust.h
  33. aidl_typenames.cpp
  34. aidl_typenames.h
  35. aidl_unittest.cpp
  36. Android.bp
  37. ast_java.cpp
  38. ast_java.h
  39. ast_java_unittest.cpp
  40. check_valid.cpp
  41. check_valid.h
  42. CleanSpec.mk
  43. code_writer.cpp
  44. code_writer.h
  45. code_writer_unittest.cpp
  46. comments.cpp
  47. comments.h
  48. diagnostics.cpp
  49. diagnostics.h
  50. diagnostics.inc
  51. diagnostics_unittest.cpp
  52. generate_aidl_mappings.cpp
  53. generate_aidl_mappings.h
  54. generate_cpp.cpp
  55. generate_cpp.h
  56. generate_cpp_analyzer.cpp
  57. generate_cpp_analyzer.h
  58. generate_cpp_unittest.cpp
  59. generate_java.cpp
  60. generate_java.h
  61. generate_java_binder.cpp
  62. generate_ndk.cpp
  63. generate_ndk.h
  64. generate_rust.cpp
  65. generate_rust.h
  66. hiddenapi-greylist
  67. import_resolver.cpp
  68. import_resolver.h
  69. io_delegate.cpp
  70. io_delegate.h
  71. io_delegate_unittest.cpp
  72. location.cpp
  73. location.h
  74. logging.cpp
  75. logging.h
  76. main.cpp
  77. NOTICE
  78. options.cpp
  79. options.h
  80. options_unittest.cpp
  81. os.h
  82. OWNERS
  83. parser.cpp
  84. parser.h
  85. permission.cpp
  86. permission.h
  87. preprocess.cpp
  88. preprocess.h
  89. PREUPLOAD.cfg
  90. README.md
  91. run_integration_tests.sh
  92. TEST_MAPPING
README.md

Documentation for this project is currently maintained here:

https://source.android.com/devices/architecture/aidl/overview