Skip to content

Honor the passed schema for struct payloads (regression from 1.7.0) - #1426

Merged
mtdowling merged 1 commit into
smithy-lang:mainfrom
timocov:fix-payload-struct-passed-schema
Oct 24, 2026
Merged

mtdowling merged 1 commit into
smithy-lang:mainfrom
timocov:fix-payload-struct-passed-schema

Conversation

@timocov

@timocov timocov commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

What behavior changes?

Describe the observable difference in behavior before and after this change.

Fixed a regression when http payload serializer serializes a struct with a passed schema being different from struct's schema() one.

Why is this change needed?

A fix of regression from 1.7.0 introduced in #1358. The same is being used in multiple other places, but not in payload serializer:

How was this validated?

  • Added tests
  • Run internal integration tests

What should reviewers focus on?

Point reviewers to the files or sections that contain the interesting logic.

Additional Links

Related issues, design docs, or prior art.


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

PayloadSerializer.writeStruct took the MemberSubsetCodec fast path for any
struct, serializing it with struct.schema() and dropping the schema it was
given. 1.7.0 always serialized with the passed schema. Only take the fast
path when the struct's schema is the target of the passed schema, matching
the existing guards in HttpBindingSerializer.
@mtdowling
mtdowling merged commit be39984 into smithy-lang:main Oct 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants