(decl, typedeps, types, knowntypes)
| 207 | |
| 208 | |
| 209 | def _check_members(decl, typedeps, types, knowntypes): |
| 210 | if isinstance(typedeps, TypeDeclaration): |
| 211 | raise NotImplementedError((decl, typedeps)) |
| 212 | |
| 213 | #members = decl.members or () # A forward decl has no members. |
| 214 | members = decl.members |
| 215 | if not members: |
| 216 | # A forward decl has no members, but that shouldn't surface here.. |
| 217 | raise NotImplementedError(decl) |
| 218 | if len(members) != len(typedeps): |
| 219 | raise NotImplementedError((decl, typedeps)) |
| 220 | |
| 221 | unsupported = [] |
| 222 | for member, typedecl in zip(members, typedeps): |
| 223 | checked = _check_typedep(member, typedecl, types, knowntypes) |
| 224 | unsupported.append(checked) |
| 225 | if any(None if v is FIXED_TYPE else v for v in unsupported): |
| 226 | return unsupported |
| 227 | elif FIXED_TYPE in unsupported: |
| 228 | return FIXED_TYPE |
| 229 | else: |
| 230 | return None |
| 231 | |
| 232 | |
| 233 | def _check_typedep(decl, typedecl, types, knowntypes): |
no test coverage detected
searching dependent graphs…