Changeset 299 in dev for trunk/abdev/BasicCompiler32/OperatorProc.cpp
- Timestamp:
- Aug 23, 2007, 6:17:00 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/OperatorProc.cpp
r293 r299 259 259 } 260 260 261 Opcode_CallProc(Parameter,subs[0],0,ObjectName); 262 resultType = subs[0]->ReturnType(); 263 264 265 ///////////////////////////////////////////////////////// 266 // ☆★☆ ジェネリクスサポート ☆★☆ 267 268 if( resultType.IsTypeParameter() ) 269 { 270 // 型パラメータだったとき 271 272 int ptrLevel = PTR_LEVEL( resultType.GetBasicType() ); 273 274 if( classType.HasActualGenericType() ) 275 { 276 // TODO: GetDummyActualGenericTypeを適切な形に実装し直す 277 resultType = classType.GetDummyActualGenericType(); 278 } 279 else 280 { 281 // TODO: ベースオブジェクト(指定されていないときはObjectクラス)にセットする 282 resultType.SetBasicType( DEF_OBJECT ); 283 } 284 285 for( int i=0; i<ptrLevel; i++ ) 286 { 287 resultType.PtrLevelUp(); 288 } 289 } 290 291 // 292 ///////////////////////////////////////////////////////// 293 } 261 const UserProc *pUserProc = subs[0]; 262 263 Opcode_CallProc(Parameter,pUserProc,0,ObjectName); 264 resultType = pUserProc->ReturnType(); 265 266 // 型パラメータを解決 267 ResolveFormalGenericTypeParameter( resultType, classType, pUserProc ); 268 }
Note:
See TracChangeset
for help on using the changeset viewer.