Tim Ryan
Tim Ryan
There are only a few instances of these in the codebase (see C.lhs) but it should be parsed properly at least. ``` CIntConst (CInteger v repr flags) _ -> let...
Whatever the @ does here, it should be handled right: ``` typedef mut [spec@(CTypeDef ident _)] = do ```
There are a few control groups (of `do`, `let`, and `case`) that don't handle `where` right. 1. They parse their body as a list of statements and then `where`, so...
e.g. in this code, the colons will wrongly be treated as function arguments. ``` baseTypeOf :: [CDeclSpec] -> EnvMonad s (Maybe CStorageSpec, EnvMonad s IntermediateType) baseTypeOf specs = do --...
Say we're matching: ``` case value of Container([]) => ..., Container(vector) => ..., ``` This won't work in Rust if you try to match against a container. Unless `box []`...
(See #17 for a meta-topic) Since if ... else ... is a common control structure, we should convert it to its Rust equivalent, the if { ... } else {...
Because Lambda is treated as an Expr, and the pattern for several exprs is Expr+, it would be ambiguous to accept ExprSpan as a body. A result of this is...
When parsing `happy` and `alex` outputted code, that is the generated Lexer and Parser code in `gen/`, we can see that a large number of functions have inferred type definitions,...
What is this? ``` IntMap.fromSet (const ()) ```
These files are generated using the Haskell-native parsers, Happy and Alex. So the original code is in Haskell and the output requires a Haskell compiler. These files are then reformatted...