D front end implementation

Jacob Carlborg via Digitalmars-d digitalmars-d at puremagic.com
Wed Nov 16 10:17:07 PST 2016


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?

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list