microsoft / microsoft/typespec

[Bug]: typespec-python - discriminated polymorphic types as `op` parameters generated incorrectly

Open
#6,135 2 comments 0 reactions 0 assignees View on GitHub
bug emitter:client:python
Dominant language
Java
Stars
5.9k
Forks
394
Avg merge
1d 23h
Merged PRs (30d)
104

Description

### Describe the bug

We type `base[]` as `list[base]` in method parameters. That does not compute with polymorphic types.

### Reproduction

```typespec
@service()
namespace PolymorphicVariance;

@discriminator("kind")
model Pet {
kind: string;
}

model Cat extends Pet {
kind: "cat"
}

model Dog extends Pet {
kind: "dog"
}

op cuddle(ingredients: Pet[]): void;
```

repro.py
```python
cuddle([Dog(), Cat()])
```

```sh
$> pyright repro.py
```

### Checklist

- [x] Follow our [Code of Conduct](https://github.com/microsoft/typespec/blob/main/CODE_OF_CONDUCT.md)
- [x] Check that there isn't already an issue that request the same bug to avoid creating a duplicate.
- [x] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/Microsoft/typespec/discussions).
- [x] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.