Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
api: Fix usage of int.parse that implicitly accepts hexadecimal
Calling just `int.parse(s)`, without a `radix:` argument, invokes a special behavior where `int.parse` not only accepts decimal strings like "42", but also hexadecimal strings like "0x2a". That's a bit unexpected. In any case it's definitely not something we want when interpreting any part of the Zulip API. Fix the one place we had this in our own code. There remain two places it appears in the code generated by `json_serializable`; mark those with TODO comments. It'd be nice to fix those too, but realistically this quirk is unlikely to ever cause a problem, so it's not worth a lot of effort to resolve. (Note that this doesn't affect the bulk of places we have an int in the API types, because most of those are handled by jsonDecode before the `json_serializable`-generated code ever sees them. It only affects the keys of `Map<int, …>` structures.) It looks like there's no existing thread in the `json_serializable` tracker for this issue. The most closely related is from where the handling of `Map<int, …>` types was added in the first place: google/json_serializable.dart#434
- Loading branch information