fix IO::ARGF#read should always return i32#10828
fix IO::ARGF#read should always return i32#10828asterite merged 2 commits intocrystal-lang:masterfrom
Conversation
|
This pull is probably not actually useful as I just made a stab at what needed to be changed |
|
Probably some IO type outside of the std library is returning an Int64. I don't think that's totally wrong, so maybe we should revert this return type annotation |
|
related to this pull #10580 |
|
As long as The real problem however is that the error message points to the abstract def, not the implementation which breaks the contract by returning |
|
But this is breaking someone's code. I don't think we are allowed to do that. |
|
Returning anything else but Int32 is a bug. Adding that type restriction in the abstract def just makes it visible. |
|
Ooops, sry I incorrectly identified this error as being caused by adding a return type to an abstract def. But this is really not the case in #10580. It adds a type restriction to the implementation. As @stakach suggested, this might be caused by a missing conversion from ˋSizeTˋ. So maybe it's our own code that's broken. We should have noticed that, though because we run CI against aarch64-musl. @stakach Can you provide information on the target platform and possibly a reduced reproduction? (ˋ--error-traceˋ would already help as well) |
|
This is where I'm seeing the error Which looks like the fix is to call |
|
We can probably call |
|
Could you try changing that in this PR and see if all specs pass here, and also pass in that ssh library? |
|
This fix is just a workaround, though.
But I think we should add a TODO comment and open an issue to track this. |
seeing errors like this on nightly