winglang / wing

A programming language for the cloud ☁️ A unified programming model, combining infrastructure and runtime code into one language ⚡
https://winglang.io
Other
5.04k stars 196 forks source link

improve error message when accessing an optional map property #2020

Open tsuf239 opened 1 year ago

tsuf239 commented 1 year ago

Feature Spec

Assuming we have an optional Map, and we want to access one of its properties, optional_map.get("property") (or even optional_map?.get("property")) will throw the following error: "property access unsupported on type Map?" this error message might not be clear enough to guide the user on how to fix the error.

(At the end I solved it this way:

let m = optional_map ?? {property: "x"};
m.get("property");

)

Use Cases

accessing a property on an optional map

Implementation Notes

We will also support optional_map?.property in the future

Component

Language Design

Community Note

Please vote by adding a 👍 reaction to the issue to help us prioritize. If you are interested to work on this issue, please leave a comment.

staycoolcall911 commented 1 year ago

optional_map?.get("property") should actually work - it is just not implemented yet - see #436

github-actions[bot] commented 1 year ago

Hi,

This issue hasn't seen activity in 60 days. Therefore, we are marking this issue as stale for now. It will be closed after 7 days. Feel free to re-open this issue when there's an update or relevant information to be added. Thanks!

github-actions[bot] commented 1 year ago

Hi,

This issue hasn't seen activity in 60 days. Therefore, we are marking this issue as stale for now. It will be closed after 7 days. Feel free to re-open this issue when there's an update or relevant information to be added. Thanks!

staycoolcall911 commented 1 year ago

An example for this error message:

let m: Map<str>? = {"a" => "aaa"};
log(m?.get("a"));

Yields the following compile time error message:

error: Expected type to be "str", but got "str?" instead

The error message should direct the user to unwrap the optional value (by using if let or the ?? operator).

github-actions[bot] commented 6 months ago

Hi,

This issue hasn't seen activity in 90 days. Therefore, we are marking this issue as stale for now. It will be closed after 7 days. Feel free to re-open this issue when there's an update or relevant information to be added. Thanks!

github-actions[bot] commented 3 months ago

Hi,

This issue hasn't seen activity in 90 days. Therefore, we are marking this issue as stale for now. It will be closed after 7 days. Feel free to re-open this issue when there's an update or relevant information to be added. Thanks!