module z { exports z; provides z.Main with z.Main; } The SOTM says "Service-provider declarations can be further interpreted to ensure that providers (e.g., com.mysql.jdbc.Driver) actually do implement their declared service interfaces" (section 4, para. 8).
I see javac checking that they are related types, but javac is not checking that "provides" is an interface type. That is what I was expecting based on the reading material. The other unexpected outcome was that provides/with allows the identical type. I don't know if that's intended, but please advise. PS: I did go through the open tickets this time (thanks Alan) and do not see any similar reports. If I missed it, I apologize; just trying not to waste your time by reporting a duplicate. Cheers, Paul