Changeset 301 in dev for trunk/abdev/BasicCompiler_Common/VariableOpe.cpp
- Timestamp:
- Aug 23, 2007, 10:58:43 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/VariableOpe.cpp
r299 r301 473 473 resultType = pMember->GetType(); 474 474 475 476 ///////////////////////////////////////////////////////// 477 // ☆★☆ ジェネリクスサポート ☆★☆ 478 479 if( resultType.IsTypeParameter() ) 480 { 481 // 型パラメータだったとき 482 483 int ptrLevel = PTR_LEVEL( resultType.GetBasicType() ); 484 485 if( classType.HasActualGenericType() ) 486 { 487 // TODO: GetDummyActualGenericTypeを適切な形に実装し直す 488 resultType = classType.GetDummyActualGenericType(); 489 } 490 else 491 { 492 // TODO: ベースオブジェクト(指定されていないときはObjectクラス)にセットする 493 resultType.SetBasicType( DEF_OBJECT ); 494 } 495 496 for( int i=0; i<ptrLevel; i++ ) 497 { 498 resultType.PtrLevelUp(); 499 } 500 } 501 502 // 503 ///////////////////////////////////////////////////////// 475 // 型パラメータを解決 476 ResolveFormalGenericTypeParameter( resultType, classType ); 504 477 505 478 … … 838 811 839 812 for(i+=2,i2=0;;i++,i2++){ 840 if(buffer[i]==' ,'||buffer[i]=='('||buffer[i]=='\0'){813 if(buffer[i]=='('||buffer[i]=='\0'){ 841 814 temporary[i2]=0; 842 815 break; … … 868 841 } 869 842 870 if( (string)temporary == "T" )871 {872 int test=0;873 }874 875 843 if( !compiler.StringToType( temporary, type ) ){ 876 844 SetError(3,temporary,cp); … … 1160 1128 continue; 1161 1129 } 1130 if( Parameter[i] == '<' && IsStr == 0 ) 1131 { 1132 if( IsGenericTypeSourcePart( Parameter + i ) ) 1133 { 1134 // ジェネリクス構文 1135 i3=GetStringInGenericBracket(temporary+i2,Parameter+i); 1136 i+=i3-1; 1137 i2+=i3-1; 1138 continue; 1139 } 1140 else 1141 { 1142 // 一般構文 1143 } 1144 } 1162 1145 if((Parameter[i]==','&&IsStr==0)|| 1163 1146 Parameter[i]=='\0'){
Note:
See TracChangeset
for help on using the changeset viewer.