On 16.11.2016 19:17, Jacob Carlborg wrote:
On 2016-11-16 01:11, Timon Gehr wrote:

Yup. There are many features missing that are quite easy to implement
but require work, and a few that are somewhat messy to specify (e.g.
'protected'). An incomplete list:

* UDA's
* Built-in members (init, stringof, min, max, ...)
* various forms of import statements
   - static, selective, renaming, ...
* Initialization of union fields
* anonymous structs & unions
   - Analysis & Lowering
* additional import paths & implicit object.d
* implicit inheritance from Object
* version declarations
* Associative arrays/Associative array literals
* module declarations
* (implicit) super constructor calls
   - default constructor call insertion
   - flow analysis
* Destructor and postblit calls
   - use flow analysis to optimize moves
* with statements
* associative arrays
* foreach statements
   - automatic decoding for string types
   - foreach over associative arrays
   - foreach over delegates
   - foreach over AliasSeq
* pattern matching in old-style template constraints
* explicit casts from/to class references
   - eg. to/from void* and to bool
* try-catch-finally statements
* scope guards
* initialization crossing check
* multi-argument struct constructors.
* struct postblit & destructors
* finish operator overloading support
* opDispatch
* member alias declarations aliasing members
   - correctly provide a this pointer
* visibility
   - package, protected
* alias this

Is it "only" semantic analysis that is missing for these features or
lexing and/or parsing as well?


Mostly semantic analysis, but parsing is very easy anyway. I think UDAs are the only listed feature still missing in the parser, but that's just because they were introduced after I had already written the parser.

Reply via email to