shiika
shiika copied to clipboard
A statically-typed programming language
eg. ```rb A = 1 A = 2 # should be error ``` Not that this is legal: ```rb if foo A = 1 else A = 2 end ```
Currently `Lexer` does not distinguish `;` from newline, but there is a case where newline is allowed but semicolon is not. Example: ``` # OK foo(1, 2) # NG foo(1,;2)...
These are not used anymore and should just be removed. https://github.com/shiika-lang/shiika/blob/d9427c1df4bc1bfdfc0bf87ad4fd607564fc8d64/lib/skc_codegen/src/lib.rs#L166-L185
`LocationSpan::todo` is a placeholder and should eventually removed. - [ ] lib/skc_ast2hir/src/convert_exprs - [ ] lib/skc_ast2hir/src/hir_maker - [ ] lib/skc_ast2hir/src/pattern_match - [ ] lib/skc_ast2hir/src/lib.rs
## Given ```sk class A B = [] end ``` ## Expected no error ## Actual > thread 'main' panicked at '[BUG] lvar `ary@0_' not found in ctx.lvars', lib/skc_codegen/src/gen_exprs.rs:464:32
Issue: #523 What I did: Fix warning `calls to std::mem::drop ` Why the problem occurred: The std::mem::drop function is used to drop (dispose of) a value, taking ownership of that...
Concurrency support is an essential feature in modern programming languages. However, there are various styles available: native threads (such as Ruby's `Thread`), stackless coroutines (using `async/await`), and stackful coroutines (like...