Mercurial > projects > ddmd
comparison dmd/FuncDeclaration.d @ 84:be2ab491772e
Expressions -> Vector!Expression
author | Eldar Insafutdinov <e.insafutdinov@gmail.com> |
---|---|
date | Mon, 30 Aug 2010 16:12:19 +0100 |
parents | 43073c7c7769 |
children | 23280d154c5b |
comparison
equal
deleted
inserted
replaced
83:ee670dd808a8 | 84:be2ab491772e |
---|---|
1927 e.type = p.type; | 1927 e.type = p.type; |
1928 } | 1928 } |
1929 else | 1929 else |
1930 e = p.type.defaultInit(Loc(0)); | 1930 e = p.type.defaultInit(Loc(0)); |
1931 | 1931 |
1932 args.data[u] = cast(void*)e; | 1932 args[u] = e; |
1933 } | 1933 } |
1934 | 1934 |
1935 MATCH m = cast(MATCH) tg.callMatch(null, args); | 1935 MATCH m = cast(MATCH) tg.callMatch(null, args); |
1936 if (m) | 1936 if (m) |
1937 { | 1937 { |
2391 { | 2391 { |
2392 cantInterpret = 1; | 2392 cantInterpret = 1; |
2393 return null; | 2393 return null; |
2394 } | 2394 } |
2395 } | 2395 } |
2396 eargs.data[i] = cast(void*)earg; | 2396 eargs[i] = earg; |
2397 } | 2397 } |
2398 | 2398 |
2399 for (size_t i = 0; i < dim; i++) | 2399 for (size_t i = 0; i < dim; i++) |
2400 { | 2400 { |
2401 Expression earg = cast(Expression)eargs.data[i]; | 2401 auto earg = eargs[i]; |
2402 Argument arg = Argument.getNth(tf.parameters, i); | 2402 Argument arg = Argument.getNth(tf.parameters, i); |
2403 auto v = cast(VarDeclaration)parameters[i]; | 2403 auto v = cast(VarDeclaration)parameters[i]; |
2404 vsave.data[i] = cast(void*)v.value; | 2404 vsave[i] = v.value; |
2405 version (LOG) { | 2405 version (LOG) { |
2406 printf("arg[%d] = %s\n", i, earg.toChars()); | 2406 printf("arg[%d] = %s\n", i, earg.toChars()); |
2407 } | 2407 } |
2408 if (arg.storageClass & (STCout | STCref) && earg.op==TOKvar) | 2408 if (arg.storageClass & (STCout | STCref) && earg.op==TOKvar) |
2409 { | 2409 { |
2490 foreach (size_t i, Dsymbol s3; istate.vars) | 2490 foreach (size_t i, Dsymbol s3; istate.vars) |
2491 { | 2491 { |
2492 if (auto v = cast(VarDeclaration)s3) | 2492 if (auto v = cast(VarDeclaration)s3) |
2493 { | 2493 { |
2494 //printf("\tsaving [%d] %s = %s\n", i, v.toChars(), v.value ? v.value.toChars() : ""); | 2494 //printf("\tsaving [%d] %s = %s\n", i, v.toChars(), v.value ? v.value.toChars() : ""); |
2495 valueSaves.data[i] = cast(void*)v.value; | 2495 valueSaves[i] = v.value; |
2496 v.value = null; | 2496 v.value = null; |
2497 } | 2497 } |
2498 } | 2498 } |
2499 } | 2499 } |
2500 | 2500 |
2696 printf("\t2: no %s\n", toChars()); | 2696 printf("\t2: no %s\n", toChars()); |
2697 } | 2697 } |
2698 return 0; | 2698 return 0; |
2699 } | 2699 } |
2700 | 2700 |
2701 Expression doInline(InlineScanState* iss, Expression ethis, Array arguments) | 2701 Expression doInline(InlineScanState* iss, Expression ethis, Expressions arguments) |
2702 { | 2702 { |
2703 InlineDoState ids = new InlineDoState(); | 2703 InlineDoState ids = new InlineDoState(); |
2704 DeclarationExp de; | 2704 DeclarationExp de; |
2705 Expression e = null; | 2705 Expression e = null; |
2706 | 2706 |
3752 } | 3752 } |
3753 | 3753 |
3754 override FuncDeclaration isFuncDeclaration() { return this; } | 3754 override FuncDeclaration isFuncDeclaration() { return this; } |
3755 } | 3755 } |
3756 | 3756 |
3757 class FuncDeclarations : Vector!FuncDeclaration { final typeof(this) copy() { auto a = new typeof(this); copyTo(a); return a; } } | 3757 alias Vector!FuncDeclaration FuncDeclarations; |