Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: should getUnionAsEnum handle extensible boolean? #1162

Closed
4 tasks done
qiaozha opened this issue Jul 15, 2024 · 1 comment
Closed
4 tasks done

[Bug]: should getUnionAsEnum handle extensible boolean? #1162

qiaozha opened this issue Jul 15, 2024 · 1 comment
Labels
bug Something isn't working needs-area

Comments

@qiaozha
Copy link
Member

qiaozha commented Jul 15, 2024

Describe the bug

For typespec, like the below, should we interpret it as an extensible boolean definition?

union A {
  true,
  boolean
}

This is true if we are using the literal number and number types or if we are using the literal string and string types.

Wonder why we handle boolean literal and boolean differently?

In TypeScript, the type infer system will get a boolean

image

There's also a bug with the typespec-autorest emitter. it will handle the union as an empty object.
image

Reproduction

playground link

Checklist

  • Follow our Code of Conduct
  • Check that this issue is about the Azure libraries for typespec. For bug in the typespec language or core libraries file it in the TypeSpec repo
  • Check that there isn't already an issue that request the same bug to avoid creating a duplicate.
  • The provided reproduction is a minimal reproducible example of the bug.
@markcowl
Copy link
Member

won't fix. Not sure what the user scenario is.

@markcowl markcowl closed this as not planned Won't fix, can't repro, duplicate, stale Jul 23, 2024
github-merge-queue bot pushed a commit to microsoft/typespec that referenced this issue Oct 10, 2024
## Previous non-string expandable enum implementation
- Branded
  - Swagger(ExpandableStringEnum, serialization having trouble)
  - TypeSpec(ExpandableStringEnum, serialization having trouble)
- Unbranded
  - ExpandableEnum interface

## After this PR
- Branded
- Swagger(ExpandableEnum interface implementation, with
serialization/deserialization supported)
- TypeSpec(ExpandableEnum interface implementation, with
serialization/deserialization supported)
- Unbranded(untouched, supported)

## Limitations
- Only supports string and number extensible enums.
- Current TypeSpec doesn't support extensible boolean enum:
Azure/typespec-azure#1162
- Current TypeSpec doesn't seem to have literals other than string,
number and boolean(I can't make object literals work):
#2359

## About this PR's commits
- **TypeSpec code(main purpose)**:
29841a7
- TypeSpec test case in d37d396
- Swagger test case in autorest.java
Azure/autorest.java#2953
- Swagger serialization fix: e8454cf
- script change for build: 54af0f1
- A minor mapper bug fix: 41673da

---------

Co-authored-by: Weidong Xu <[email protected]>
swatkatz pushed a commit to swatkatz/typespec that referenced this issue Nov 5, 2024
…osoft#4492)

## Previous non-string expandable enum implementation
- Branded
  - Swagger(ExpandableStringEnum, serialization having trouble)
  - TypeSpec(ExpandableStringEnum, serialization having trouble)
- Unbranded
  - ExpandableEnum interface

## After this PR
- Branded
- Swagger(ExpandableEnum interface implementation, with
serialization/deserialization supported)
- TypeSpec(ExpandableEnum interface implementation, with
serialization/deserialization supported)
- Unbranded(untouched, supported)

## Limitations
- Only supports string and number extensible enums.
- Current TypeSpec doesn't support extensible boolean enum:
Azure/typespec-azure#1162
- Current TypeSpec doesn't seem to have literals other than string,
number and boolean(I can't make object literals work):
microsoft#2359

## About this PR's commits
- **TypeSpec code(main purpose)**:
29841a7
- TypeSpec test case in d37d396
- Swagger test case in autorest.java
Azure/autorest.java#2953
- Swagger serialization fix: e8454cf
- script change for build: 54af0f1
- A minor mapper bug fix: 41673da

---------

Co-authored-by: Weidong Xu <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working needs-area
Projects
None yet
Development

No branches or pull requests

2 participants