feat(output-options): add prefer-skip-optional-pointer-on-container-types#1979
Merged
jamietanna merged 1 commit intomainfrom May 11, 2025
Merged
feat(output-options): add prefer-skip-optional-pointer-on-container-types#1979jamietanna merged 1 commit intomainfrom
prefer-skip-optional-pointer-on-container-types#1979jamietanna merged 1 commit intomainfrom
Conversation
b1c0598 to
111fec8
Compare
prefer-skip-optional-pointer-on-container-types
…types` One of the key things `oapi-codegen` does is to use an "optional pointer", following idiomatic Go practices, to indicate that a field/type is optional. It's possible for users to override this using behaviour on a per-type or per-field basis using the `x-go-type-skip-optional-pointer` extension, but there are cases, as noted in #1561, where we're generating the optional pointer for container types (such as slices or maps) which doesn't make sense, as it requires an extra level of `... != nil` checks. Therefore we should introduce a new opt-in Output Option to allow skipping the optional pointer on a container type. Closes #1561.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
One of the key things
oapi-codegendoes is to use an "optionalpointer", following idiomatic Go practices, to indicate that a
field/type is optional.
It's possible for users to override this using behaviour on a per-type
or per-field basis using the
x-go-type-skip-optional-pointerextension, but there are cases, as noted in #1561, where we're
generating the optional pointer for container types (such as slices or
maps) which doesn't make sense, as it requires an extra level of
... != nilchecks.Therefore we should introduce a new opt-in Output Option to allow
skipping the optional pointer on a container type.
Closes #1561.