Changeset 616
- Timestamp:
- 08/12/10 02:10:46 (2 years ago)
- Files:
-
- trunk/src/expression.c (modified) (7 diffs)
- trunk/src/mars.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/expression.c
r615 r616 494 494 495 495 Type *functionParameters(Loc loc, Scope *sc, TypeFunction *tf, 496 Expressions *arguments )496 Expressions *arguments, FuncDeclaration *fd) 497 497 { 498 498 //printf("functionParameters()\n"); … … 780 780 arguments->insert(0, e); 781 781 } 782 783 // If inferring return type, and semantic3() needs to be run if not already run 784 if (!tf->next && fd->inferRetType) 785 fd->semantic3(fd->scope); 786 782 787 Type *tret = tf->next; 783 788 if (wildmatch) … … 3837 3842 if (!arguments) 3838 3843 arguments = new Expressions(); 3839 functionParameters(loc, sc, tf, arguments );3844 functionParameters(loc, sc, tf, arguments, f); 3840 3845 3841 3846 type = type->addMod(tf->nextOf()->mod); … … 3862 3867 3863 3868 tf = (TypeFunction *)f->type; 3864 functionParameters(loc, sc, tf, newargs );3869 functionParameters(loc, sc, tf, newargs, f); 3865 3870 } 3866 3871 else … … 3894 3899 if (!arguments) 3895 3900 arguments = new Expressions(); 3896 functionParameters(loc, sc, tf, arguments );3901 functionParameters(loc, sc, tf, arguments, f); 3897 3902 } 3898 3903 else … … 3918 3923 3919 3924 tf = (TypeFunction *)f->type; 3920 functionParameters(loc, sc, tf, newargs );3925 functionParameters(loc, sc, tf, newargs, f); 3921 3926 #if 0 3922 3927 e = new VarExp(loc, f); … … 7149 7154 if (!arguments) 7150 7155 arguments = new Expressions(); 7151 type = functionParameters(loc, sc, tf, arguments); 7152 7153 if (!type && f && f->scope) 7154 { f->semantic3(f->scope); 7155 type = f->type->nextOf(); 7156 } 7156 type = functionParameters(loc, sc, tf, arguments, f); 7157 7157 7158 7158 if (!type) trunk/src/mars.c
r584 r616 92 92 #endif 93 93 ; 94 version = "v2.04 8";94 version = "v2.049"; 95 95 global.structalign = 8; 96 96
