"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/dmd/expression.d" between
dmd-2.094.1.tar.gz and dmd-2.094.2.tar.gz

About: DMD (Digital Mars D) is the D reference compiler. D is an object-oriented, imperative, multi-paradigm system programming language.

expression.d  (dmd-2.094.1):expression.d  (dmd-2.094.2)
skipping to change at line 3947 skipping to change at line 3947
Type t = pto.type; Type t = pto.type;
if (t.ty == Terror) if (t.ty == Terror)
return cannotInfer(this, to, flag); return cannotInfer(this, to, flag);
tiargs.push(t); tiargs.push(t);
} }
// Set target of return type inference // Set target of return type inference
if (!tf.next && tof.next) if (!tf.next && tof.next)
fd.treq = to; fd.treq = to;
auto ti = Pool!TemplateInstance.make(loc, td, tiargs); auto ti = new TemplateInstance(loc, td, tiargs);
Expression ex = (new ScopeExp(loc, ti)).expressionSemantic(td._scope ); Expression ex = (new ScopeExp(loc, ti)).expressionSemantic(td._scope );
// Reset inference target for the later re-semantic // Reset inference target for the later re-semantic
fd.treq = null; fd.treq = null;
if (ex.op == TOK.error) if (ex.op == TOK.error)
return MATCH.nomatch; return MATCH.nomatch;
if (auto ef = ex.isFuncExp()) if (auto ef = ex.isFuncExp())
return ef.matchType(to, sc, presult, flag); return ef.matchType(to, sc, presult, flag);
else else
skipping to change at line 4875 skipping to change at line 4875
* foo.bar!(args) * foo.bar!(args)
*/ */
extern (C++) final class DotTemplateInstanceExp : UnaExp extern (C++) final class DotTemplateInstanceExp : UnaExp
{ {
TemplateInstance ti; TemplateInstance ti;
extern (D) this(const ref Loc loc, Expression e, Identifier name, Objects* t iargs) extern (D) this(const ref Loc loc, Expression e, Identifier name, Objects* t iargs)
{ {
super(loc, TOK.dotTemplateInstance, __traits(classInstanceSize, DotTempl ateInstanceExp), e); super(loc, TOK.dotTemplateInstance, __traits(classInstanceSize, DotTempl ateInstanceExp), e);
//printf("DotTemplateInstanceExp()\n"); //printf("DotTemplateInstanceExp()\n");
this.ti = Pool!TemplateInstance.make(loc, name, tiargs); this.ti = new TemplateInstance(loc, name, tiargs);
} }
extern (D) this(const ref Loc loc, Expression e, TemplateInstance ti) extern (D) this(const ref Loc loc, Expression e, TemplateInstance ti)
{ {
super(loc, TOK.dotTemplateInstance, __traits(classInstanceSize, DotTempl ateInstanceExp), e); super(loc, TOK.dotTemplateInstance, __traits(classInstanceSize, DotTempl ateInstanceExp), e);
this.ti = ti; this.ti = ti;
} }
override Expression syntaxCopy() override Expression syntaxCopy()
{ {
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)