The object module should overload appropriate functions and methods with the shared qualifier. For example, the following doesn't not compile: class Foo { private Object value; synchronized bool hasValue (Object val) { return value == val; } } Because opEquals in object doesn't accept shared parameters.
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/17230 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB