Alexander Fedotov
Alexander Fedotov
**Describe the bug** The following error is thrown when trying to compile a project: ``` Input CSS: { width: 100%; display: block; padding: 2em 0; text-align: center; svg { animation:...
### Summary Inlining an iterator to a later call site whilst the iterator is accessed causes a compile error and potentially different program behaviour. ### Lint Name needless_collect ### Reproducer...
When enabling `format_code_in_doc_comments`, the formatter reports that there is a syntax issue in a code block. However the syntax issue source location seems to be confusing/ambigious: Running `rustfmt` on the...
The following snippet: ```rust fmt := import("printing") math := import("math") main := () => { } ``` The compiler crashes with a stack overflow: ``` thread 'main' has overflowed its...
The following snippet: ```rust math := import("math") // #dump_ir main := () => { temp := Intrinsics::cast(type f64, type i32, -1.) t := math::abs(temp) } ``` Causes the compiler to...
This fixes issue #980 and other similar issues where given that multiple imports are being simultaneously parsed, the insertion order of the modules in `NodeMap` is not correctly preserved when...
The following snippet: ```rust fmt := import("printing"); main := () => { y := 1 + 1 + 1 + 1; fmt::print_int(y + t); } ``` `print_int` is a defined...
- **ast: remove `AccessKind` differentiator** - **parser: change access type and pattern syntax to use `.` over `::`** - **semantics: adjust resolution to work without `AccessKind`** - **stdlib: update sources...
This will be needed by register allocation, and in general it can allow for optimisations where things are removed since they aren't ever used.
Another powerful optimisation pass which any serious compiler will perform. The function inlining pass will attempt to small functions into other functions to avoid the "cost" of a call. There...