I am not sure if this is a bug or if there is some explanation for this behavior, but either way it is confusing and I think it should cause an Error. --- class A { private { public int a;//No Error??? } private public string s;//Error, expected } --- https://run.dlang.io/is/odJDnA