Changeset 299 in dev for trunk/abdev/BasicCompiler_Common/Subroutine.cpp
- Timestamp:
- Aug 23, 2007, 6:17:00 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/Subroutine.cpp
r292 r299 232 232 GetVarType( ObjectName, leftType, false ); 233 233 234 ///////////////////////////////////////////////////////// 235 // ☆★☆ ジェネリクスサポート ☆★☆ 236 237 if( resultType.IsTypeParameter() ) 238 { 239 // 型パラメータだったとき 240 241 int ptrLevel = PTR_LEVEL( resultType.GetBasicType() ); 242 243 if( leftType.HasActualGenericType() ) 244 { 245 // TODO: GetDummyActualGenericTypeを適切な形に実装し直す 246 resultType = leftType.GetDummyActualGenericType(); 247 } 248 else 249 { 250 // TODO: ベースオブジェクト(指定されていないときはObjectクラス)にセットする 251 resultType.SetBasicType( DEF_OBJECT ); 252 } 253 254 for( int i=0; i<ptrLevel; i++ ) 255 { 256 resultType.PtrLevelUp(); 257 } 258 } 259 260 // 261 ///////////////////////////////////////////////////////// 234 // 型パラメータを解決 235 ResolveFormalGenericTypeParameter( resultType, leftType, pUserProc ); 262 236 } 263 237 … … 314 288 } 315 289 316 resultType = subs[0]->ReturnType(); 317 318 319 ///////////////////////////////////////////////////////// 320 // ☆★☆ ジェネリクスサポート ☆★☆ 321 322 if( resultType.IsTypeParameter() ) 323 { 324 // 型パラメータだったとき 325 326 int ptrLevel = PTR_LEVEL( resultType.GetBasicType() ); 327 328 if( classType.HasActualGenericType() ) 329 { 330 // TODO: GetDummyActualGenericTypeを適切な形に実装し直す 331 resultType = classType.GetDummyActualGenericType(); 332 } 333 else 334 { 335 // TODO: ベースオブジェクト(指定されていないときはObjectクラス)にセットする 336 resultType.SetBasicType( DEF_OBJECT ); 337 } 338 339 for( int i=0; i<ptrLevel; i++ ) 340 { 341 resultType.PtrLevelUp(); 342 } 343 } 344 345 // 346 ///////////////////////////////////////////////////////// 290 const UserProc *pUserProc = subs[0]; 291 292 resultType = pUserProc->ReturnType(); 293 294 295 // 型パラメータを解決 296 ResolveFormalGenericTypeParameter( resultType, classType, pUserProc ); 347 297 348 298 return true;
Note:
See TracChangeset
for help on using the changeset viewer.