Template parameter deduction [v0.4]

As a first result of my GS0C activity I managed to let the DParser handle template parameters like “T” in class MyClass(T) { T bar; }

– So now, for instance when typing “(new MyClass!int).bar.” , all properties of ‘int’ will be shown – or other properties respective to the argument(s) passed.

  • I also implemented overload filtering by template parameters
    - so there’s a specialization ordering now that omits foo(T:T) from foo(T:T)(T t) {} and foo(T:T*)( T t) {} when you type foo(&i)
    For more info, check http://dlang.org/template.html
  • Several parser/lexer issues&deadlocks got fixed – the parser also has gotten its own test environment that can be used with VS Ultimate now – this might improve the code’s consistency and testing new features will also be easier
  • Made UFCS pre-analysis (that is done while starting MonoDevelop) multi-threaded -> On a quadcore-CPU you’ll get an approx. 4x speedup!

As a further feature, I’m going to implement (constant) expression evaluation now to be able to build up a pre-compile time mixin evaluation infrastructure -
Hopefully the analysis duration that is needed to fully parse a D module won’t “explode” that enormously :D

Anyway, if you find bugs, tell me! -> https://github.com/aBothe/Mono-D/issues or right over here!

4 Comments

  • earthfront
    June 21, 2012 - 12:25 pm | Permalink

    This is excellent! Really, yours is the best D language IDE yet!

    I’m searching on google and on this site, but is there information somewhere on how to link libraries using the configuration boxes?

    • alex
      June 21, 2012 - 3:04 pm | Permalink

      So you want to link additional libraries into your executable?
      Open the project options -> Build -> Compiling and enter all the libraries that shall be linked in, one per line, like
      libabc.a
      libdef.a
      libghi.a
      etc.

  • André
    June 9, 2012 - 12:44 pm | Permalink

    Great news as always :) Keep up the good work!

  • Leave a Reply

    Your email address will not be published. Required fields are marked *


    5 + = eleven

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>