Changeset 732 in dev for trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Class.cpp
- Timestamp:
- Aug 23, 2008, 11:39:31 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Class.cpp
r728 r732 1438 1438 } 1439 1439 1440 // 実型パラメータに値型が含まれないとき 1441 bool isValueType = false; 1442 BOOST_FOREACH( const Type &actualType, actualTypes ) 1443 { 1444 if( actualType.IsValueType() ) 1445 { 1446 isValueType = true; 1447 } 1448 } 1449 if( !isValueType ) 1450 { 1451 return &_class; 1452 } 1453 1440 1454 // 展開済みのクラスがあればそれを返す 1441 1455 BOOST_FOREACH( const ExpandedTemplateClass *pExpandedTemplateClass, _class.expandedTemplateClasses ) … … 1472 1486 if( _class.HasSuperClass() ) 1473 1487 { 1474 const CClass *pExpandedSuperClass = TemplateExpand( *const_cast<CClass *>(&_class.GetSuperClass()), actualTypes ); 1475 pNewClass->InheritsClass( *pExpandedSuperClass, pNewClass->GetSuperClassActualTypeParameters(), -1 ); 1488 Types expandedSuperClassActualTypes; 1489 BOOST_FOREACH( const Type &superClassActualType, _class.GetSuperClassActualTypeParameters() ) 1490 { 1491 expandedSuperClassActualTypes.push_back( TemplateExpand_ResolveType( superClassActualType, actualTypes ) ); 1492 } 1493 1494 const CClass *pExpandedSuperClass = TemplateExpand( *const_cast<CClass *>(&_class.GetSuperClass()), expandedSuperClassActualTypes ); 1495 pNewClass->InheritsClass( *pExpandedSuperClass, expandedSuperClassActualTypes, -1 ); 1476 1496 } 1477 1497
Note:
See TracChangeset
for help on using the changeset viewer.