| 4191 | } |
| 4192 | |
| 4193 | bool hasImplicit ( const TypeDeclPtr & type ) { |
| 4194 | if ( type->implicit ) return true; |
| 4195 | if ( type->firstType && hasImplicit(type->firstType) ) return true; |
| 4196 | if ( type->secondType && hasImplicit(type->secondType) ) return true; |
| 4197 | for ( auto & argT : type->argTypes ) { |
| 4198 | if ( hasImplicit(argT) ) return true; |
| 4199 | } |
| 4200 | return false; |
| 4201 | } |
| 4202 | |
| 4203 | bool isMatchingArgumentType ( const TypeDeclPtr & argType, const TypeDeclPtr & passType ) { |
| 4204 | if (!passType) { |