If a mojom has errors in it, more often than not you get python stack traces as the errors. These are often very cryptic. For example, I was refactoring some code and moved some mojo structures into a different namespace. I needed to qualify usage in some places. That was not at all obvious from the error output:
FAILED: gen/services/ws/public/mojom/event_injector.mojom-shared-message-ids.h gen/services/ws/public/mojom/gpu.mojom-shared-message-ids.h gen/services/ws/public/m\
ojom/remoting_event_injector.mojom-shared-message-ids.h gen/services/ws/public/mojom/screen_provider_observer.mojom-shared-message-ids.h gen/services/ws/public/moj\
om/user_activity_monitor.mojom-shared-message-ids.h gen/services/ws/public/mojom/window_manager.mojom-shared-message-ids.h gen/services/ws/public/mojom/window_mana\
ger_constants.mojom-shared-message-ids.h gen/services/ws/public/mojom/window_server_test.mojom-shared-message-ids.h gen/services/ws/public/mojom/window_tree.mojom-\
shared-message-ids.h gen/services/ws/public/mojom/window_tree_constants.mojom-shared-message-ids.h gen/services/ws/public/mojom/arc.mojom-shared-message-ids.h
python ../../mojo/public/tools/bindings/mojom_bindings_generator.py --use_bundled_pylibs generate -d ../../ -I ../../ -o gen --bytecode_path gen/mojo/public/tools/\
bindings -I ../../ -I ../../mojo/services --filelist=__services_ws_public_mojom_mojom__generate_message_ids___build_toolchain_linux_clang_x64__rule..rsp --generate\
_non_variant_code --generate_message_ids -g c++
Traceback (most recent call last):
File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 516, in <module>
sys.exit(main())
File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 512, in main
return args.func(args, remaining_args)
File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 254, in _Generate
RelativePath(filename, args.depth), [])
File "../../mojo/public/tools/bindings/mojom_bindings_generator.py", line 224, in _GenerateModule
generator.GenerateFiles(filtered_args)
File "/tertiary/builds/build2/src/mojo/public/tools/bindings/generators/mojom_cpp_generator.py", line 404, in GenerateFiles
self.Write(self._GenerateModuleSharedMessageIdsHeader(),
File "/tertiary/builds/build2/src/mojo/public/tools/bindings/pylib/mojom/generate/template_expander.py", line 36, in GeneratorInternal
parameters = generator(*args, **kwargs2)
File "/tertiary/builds/build2/src/mojo/public/tools/bindings/generators/mojom_cpp_generator.py", line 393, in _GenerateModuleSharedMessageIdsHeader
return self._GetJinjaExports()
File "/tertiary/builds/build2/src/mojo/public/tools/bindings/generators/mojom_cpp_generator.py", line 299, in _GetJinjaExports
"extra_traits_headers": self._GetExtraTraitsHeaders(),
File "/tertiary/builds/build2/src/mojo/public/tools/bindings/generators/mojom_cpp_generator.py", line 208, in _GetExtraTraitsHeaders
for typemap in self._GetAllUsedTypemaps():
File "/tertiary/builds/build2/src/mojo/public/tools/bindings/generators/mojom_cpp_generator.py", line 254, in _GetAllUsedTypemaps
AddKind(parameter.kind)
File "/tertiary/builds/build2/src/mojo/public/tools/bindings/generators/mojom_cpp_generator.py", line 230, in AddKind
AddKind(kind.kind)
File "/tertiary/builds/build2/src/mojo/public/tools/bindings/generators/mojom_cpp_generator.py", line 235, in AddKind
name = self._GetFullMojomNameForKind(kind)
File "/tertiary/builds/build2/src/mojo/public/tools/bindings/generators/mojom_cpp_generator.py", line 454, in _GetFullMojomNameForKind
return _NameFormatter(kind, self.variant).FormatForMojom()
File "/tertiary/builds/build2/src/mojo/public/tools/bindings/generators/mojom_cpp_generator.py", line 80, in FormatForMojom
return self.Format(".")
File "/tertiary/builds/build2/src/mojo/public/tools/bindings/generators/mojom_cpp_generator.py", line 68, in Format
parts.extend(self._GetName(internal, flatten_nested_kind))
File "/tertiary/builds/build2/src/mojo/public/tools/bindings/generators/mojom_cpp_generator.py", line 110, in _GetName
name_parts.append(self._MapKindName(self._token, internal))
File "/tertiary/builds/build2/src/mojo/public/tools/bindings/generators/mojom_cpp_generator.py", line 84, in _MapKindName
return token.name
AttributeError: 'Kind' object has no attribute 'name'
Not only is the output unhelpful, it doesn't even tell me what file (well, I see there is a possible list of files, but it's quite a list)!
Comment 1 by steve...@chromium.org
, Nov 1