(typ super.Type)
| 127 | } |
| 128 | |
| 129 | func recordOf(typ super.Type) *super.TypeRecord { |
| 130 | switch typ := super.TypeUnder(typ).(type) { |
| 131 | case *super.TypeRecord: |
| 132 | return typ |
| 133 | case *super.TypeUnion: |
| 134 | if hasUnknown(typ) { |
| 135 | return nil |
| 136 | } |
| 137 | // We assume here this is a fused type and thus has only one record |
| 138 | // type in the union. |
| 139 | for _, typ := range typ.Types { |
| 140 | if typ := recordOf(typ); typ != nil { |
| 141 | return typ |
| 142 | } |
| 143 | } |
| 144 | } |
| 145 | return nil |
| 146 | } |
| 147 | |
| 148 | func newJoinUsingScope(j *joinScope, columns []string) *joinUsingScope { |
| 149 | skip := make(map[string]struct{}) |
no test coverage detected