Changeset 378 in dev for trunk/abdev/BasicCompiler_Common/src
- Timestamp:
- Dec 16, 2007, 11:44:29 PM (17 years ago)
- Location:
- trunk/abdev/BasicCompiler_Common/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/src/Class.cpp
r376 r378 50 50 } 51 51 52 std::string Interface::GetFullNameWithActualGenericTypeParameters() const 53 { 54 std::string interfaceName = this->GetClass().GetFullName(); 55 if( actualTypeParameters.size() ) 56 { 57 std::string actualGenericTypesName; 58 BOOST_FOREACH( const Type &typeParameter, actualTypeParameters ) 59 { 60 if( actualGenericTypesName.size() ) 61 { 62 actualGenericTypesName += ","; 63 } 64 actualGenericTypesName += typeParameter.ToString(); 65 } 66 67 interfaceName += "<" + actualGenericTypesName + ">"; 68 } 69 return interfaceName; 70 } 52 71 53 72 bool CClass::IsClass() const … … 344 363 1, ESC_OPERATOR, 345 364 1, ESC_AS, 346 interfaceClass.GetName().c_str()365 pDestInterface->GetFullNameWithActualGenericTypeParameters().c_str() 347 366 ); 348 367 … … 539 558 } 540 559 560 if( !pInterface->GetClass().IsReady() ){ 561 // インターフェイスが未解析のとき 562 compiler.GetObjectModule().meta.GetClasses().LookaheadClass( pInterface->GetClass().GetName().c_str() ); 563 } 564 541 565 CMethod *pMethodForOverride = pInterface->GetDynamicMethods().FindForOverride( pUserProc ); 542 566 if( pMethodForOverride ) -
trunk/abdev/BasicCompiler_Common/src/Class_Collect.cpp
r376 r378 326 326 SplitGenericClassInstance( temporary, className, typeParameters ); 327 327 328 CClass *pobj_c = const_cast<CClass *>( this->Find(namespaceScopes, temporary) );328 CClass *pobj_c = const_cast<CClass *>( this->Find(namespaceScopes, className) ); 329 329 if(!pobj_c) continue; 330 330 -
trunk/abdev/BasicCompiler_Common/src/Type.cpp
r370 r378 477 477 { 478 478 return ( actualGenericTypes.size() > 0 ); 479 } 480 481 std::string Type::ToString() const 482 { 483 const char *basicTypeName = BasicTypeToCharPtr( *this ); 484 if( basicTypeName ) 485 { 486 return basicTypeName; 487 } 488 489 if( IsTypeParameter() ) 490 { 491 return GetFormalTypeName(); 492 } 493 494 std::string typeName = GetClass().GetFullName(); 495 if( HasActualGenericType() ) 496 { 497 std::string actualGenericTypesName; 498 BOOST_FOREACH( const GenericType &actualGenericType, actualGenericTypes ) 499 { 500 if( actualGenericTypesName.size() ) 501 { 502 actualGenericTypesName += ","; 503 } 504 actualGenericTypesName += actualGenericType.GetName(); 505 } 506 507 typeName += "<" + actualGenericTypesName + ">"; 508 } 509 return typeName; 479 510 } 480 511
Note:
See TracChangeset
for help on using the changeset viewer.