Java - Type cast null parameters in samples and tests - #11967
Weidong Xu (weidongxu-microsoft) merged 1 commit into
Conversation
|
All changed packages have been documented.
Show changes
|
There was a problem hiding this comment.
🟡 Changes recommended
One or more issues must be addressed before approval.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Updates Java emitter example generation so typed null arguments avoid ambiguous overloaded calls.
Changes:
- Added shared null-parameter casting logic.
- Applied it to protocol and client-method examples.
- Updated generated samples/tests and added coverage plus a changelog entry.
File summaries
| File | Description |
|---|---|
| packages/http-client-java/generator/http-client-generator-test/src/test/java/tsptest/versioning/generated/VersioningOpListTests.java | Updated as part of this pull request. |
| packages/http-client-java/generator/http-client-generator-test/src/test/java/tsptest/specialchars/generated/BuiltinOpReadTests.java | Updated as part of this pull request. |
| packages/http-client-java/generator/http-client-generator-test/src/test/java/tsptest/model/generated/ModelOpPutNestedTests.java | Updated as part of this pull request. |
| packages/http-client-java/generator/http-client-generator-test/src/test/java/tsptest/flatten/generated/FlattenOpSendTests.java | Updated as part of this pull request. |
| packages/http-client-java/generator/http-client-generator-test/src/test/java/tsptest/builtin/generated/BuiltinOpReadTests.java | Updated as part of this pull request. |
| packages/http-client-java/generator/http-client-generator-test/src/samples/java/tsptest/versioning/generated/VersioningOpList.java | Updated as part of this pull request. |
| packages/http-client-java/generator/http-client-generator-test/src/samples/java/tsptest/specialchars/generated/BuiltinOpRead.java | Updated as part of this pull request. |
| packages/http-client-java/generator/http-client-generator-test/src/samples/java/tsptest/model/generated/ModelOpPutNested.java | Updated as part of this pull request. |
| packages/http-client-java/generator/http-client-generator-test/src/samples/java/tsptest/flatten/generated/FlattenOpSend.java | Updated as part of this pull request. |
| packages/http-client-java/generator/http-client-generator-test/src/samples/java/tsptest/builtin/generated/BuiltinOpRead.java | Updated as part of this pull request. |
| packages/http-client-java/generator/http-client-generator-core/src/test/java/com/microsoft/typespec/http/client/generator/core/template/example/ExampleWriterUtilTests.java | Updated as part of this pull request. |
| packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ProtocolExampleWriter.java | Updated as part of this pull request. |
| packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ExampleWriterUtil.java | Updated as part of this pull request. |
| packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ClientMethodExampleWriter.java | Updated as part of this pull request. |
| .chronus/changes/http-client-java-cast-null-sample-arguments-2026-09-15.md | Updated as part of this pull request. |
Review details
Suppressed comments (2)
packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ClientMethodExampleWriter.java:67
- The added tests do not exercise this
ClientMethodExampleWriterpath; they only callExampleWriterUtil.getParameterExpressiondirectly. Add an entrypoint test for a client-method example with a typed null parameter so the parameter mapping, cast, and required import are verified together.
String parameterInvocations = methodParameters.stream()
.map(methodParameter -> ExampleWriterUtil.getParameterExpression(
methodParameter.getClientMethodParameter().getClientType(),
nodeVisitor.accept(parseNodeFromParameter(method, proxyMethodExample, methodParameter))))
.collect(Collectors.joining(", "));
packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/template/example/ProtocolExampleWriter.java:82
- This new call site is not covered by the added tests:
ExampleWriterUtilTestsinvokes the helper directly, so it would still pass ifProtocolExampleWriterstopped applying the cast or collecting the type import. Add a template/writer test that exercises a nullable non-java.langparameter (for exampleOffsetDateTime) and asserts the rendered invocation and imports.
params.add(ExampleWriterUtil.getParameterExpression(parameter.getClientType(),
parameter.getClientType().defaultValueExpression()));
- Files reviewed: 5/15 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
You can try these changes here
|
Adds type casting to
nullparameters in generated Java samples and tests to prevent ambiguous call site errors after generation.