We would previously fail to emit a definition of bar() for the following code:
struct __declspec(dllexport) S { void foo() { t->bar(); } struct T { void bar() {} }; T *t; };
Note that foo() is an exported method, but bar() is not. However, foo() refers to bar() so we need to emit its definition. To make this work, we need to delay the codegen of foo() until the bodies of all the other inline methods have been parsed.
The same problem applies to inline methods that are marked used.