Enumerate all transitive self types in generated SOAP bindings #595
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
In Scala 3 the self type must enumerate all transitive self types. That means that generated code like this is rejected by the Scala 3 compiler:
It complains with:
Solution
The solution is to add
scalaxb.HttpClients
(orscalaxb.HttpClientsAsync
) to the self type of the generated SOAP bindings. Scala 2 is still happy with this change and Scala 3 is now able to compile the generated bindings.I've tested these changes by publishing this branch locally and by using the local sbt-scalaxb 1.9.1-SNAPSHOT plugin to generate code that was then compiled with Scala 3.2.2. It compiled successfully with both
scalaxbAsync := true
andfalse
.Closes: #557