Changes in src/GenPoly/GenPoly.cc [682dcae:8d7bef2]
- File:
-
- 1 edited
-
src/GenPoly/GenPoly.cc (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/GenPoly/GenPoly.cc
r682dcae r8d7bef2 100 100 if ( dynamic_cast< TypeInstType * >( type ) ) { 101 101 return type; 102 } else if ( ArrayType * arrayType = dynamic_cast< ArrayType * >( type ) ) {103 return isPolyType( arrayType->base, env );104 102 } else if ( StructInstType *structType = dynamic_cast< StructInstType* >( type ) ) { 105 103 if ( hasPolyParams( structType->get_parameters(), env ) ) return type; … … 117 115 return type; 118 116 } 119 } else if ( ArrayType * arrayType = dynamic_cast< ArrayType * >( type ) ) {120 return isPolyType( arrayType->base, tyVars, env );121 117 } else if ( StructInstType *structType = dynamic_cast< StructInstType* >( type ) ) { 122 118 if ( hasPolyParams( structType->get_parameters(), tyVars, env ) ) return type; … … 371 367 return is<VoidType>( ap->get_base() ) || is<VoidType>( bp->get_base() ) 372 368 || typesPolyCompatible( ap->get_base(), bp->get_base() ); 373 } else if ( aid == type_index{typeid(ReferenceType)} ) {374 ReferenceType *ap = as<ReferenceType>(a), *bp = as<ReferenceType>(b);375 return is<VoidType>( ap->get_base() ) || is<VoidType>( bp->get_base() )376 || typesPolyCompatible( ap->get_base(), bp->get_base() );377 369 } else if ( aid == type_index{typeid(ArrayType)} ) { 378 370 ArrayType *aa = as<ArrayType>(a), *ba = as<ArrayType>(b); … … 445 437 Type * newType = arg->clone(); 446 438 if ( env ) env->apply( newType ); 447 std::unique_ptr<Type> manager( newType );448 439 // if the argument's type is polymorphic, we don't need to box again! 449 440 return ! isPolyType( newType );
Note:
See TracChangeset
for help on using the changeset viewer.