Linker error when internal class tries to call internal setter on public class in same package
I'm currently getting a link error from this setup in Geary (abbreviated for brevity):
public class Application.AccountContext : Geary.BaseObject {
internal bool tls_validation_failed {
get; private set; default = false;
}
}
internal class Application.Controller : GLib.Object {
… {
AccountContext context = …;
context.tls_validation_failed = true;
// ^-- Link error here and for other internal property setters
}
}
Error is:
/usr/bin/ld: src/client/f537023@@geary-client-3.37@sha/meson-generated_application_application-controller.c.o: in function `application_controller_prompt_untrusted_host_co':
/usr/bin/ld: /home/mjog/Projects/GNOME/geary/build/../src/client/application/application-controller.vala:1164: undefined reference to `application_account_context_set_tls_validation_failed'
This works fine if both classes are in the same source file, but not if they are in different source files.