Comments (6)
@Blacksmoke16 Regarding the type restriction, there are some general inconsistencies. Hash(K, V)#[](key)
has no type restriction either, for example (ref #8893).
from crystal.
I think your problem is the .to_h
call after YAML.parse
, if you remove that it works as expected, otherwise you're using the Hash#dig
version.
EDIT: Looks like that works because the YAML::Any
version is less restrictive in regards to what you can pass it? 🤷
from crystal.
Yeah, not a bug. You're calling to_h
so you get a raw Hash
instead of a YAML::Any
wrapper around it. That hash expects YAML::Any
keys for its #dig
method. You probably want to skip to_h
and use YAML::Any#dig
instead.
from crystal.
Is there anything left to do here?
@Blacksmoke16 could you clarify this comment:
Looks like that works because the YAML::Any version is less restrictive in regards to what you can pass it? 🤷
from crystal.
I think I meant I was thinking that Hash#dig
is defined as def dig(key : K, *subkeys)
, notice the K
type restriction. Whereas YAML::Any#dig
is implemented as def dig(index_or_key, *subkeys) : YAML::Any
without any type restrictions. But I know the latter will end up using the definition of the former internally so not sure sure how it avoids the compiler error when the type of the hash should be essentially the same?
from crystal.
So not a bug?
from crystal.
Related Issues (20)
- Add API for `Base64.encode` / `Base64.decode` with an `IO` as the source HOT 3
- Add methods for filling a buffer from an IO greedily/lazily HOT 5
- Enable `ameba` in this repo HOT 19
- formatter cause syntax error. HOT 2
- `Crypto::Subtle.constant_time_compare` does not work with `StaticArray` / Cannot overwrite `StaticArray` variable HOT 2
- Parser failure on argument list with trailing comma HOT 6
- RFC: Tracing HOT 8
- `Crystal::System::User#from_*?` et al. don't work if required buffer size greater than initial buffer size HOT 1
- If any system user entry exceeds `GETPW_R_SIZE_MAX`, retreiving any user is impossible HOT 2
- `IO#same_content?` returns `true` if `stream1` is a prefix of `stream2` HOT 1
- `docs_main.cr` is a mess HOT 1
- Interpreter Error: can't cast Pointer(Void) to (Pointer(Void) | String)
- Parser considers empty argument list with trailing comma as invalid HOT 5
- Sockets are inherited by subprocesses HOT 5
- Calling String::Formatter#format, when running from a directory with a long path, causes an infinit hang when compiled in release mode. HOT 9
- `Socket#close_on_exec?` fails to build on Windows
- `Indexable#find` and `#find!` with start offsets
- False positive for "Recursive struct detected" HOT 2
- Struct#pretty_print Sorts Fields by Name HOT 6
- Hex Array Literals HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from crystal.