1
/**
2
 * Provides an implicit conversion table for basic types.
3
 *
4
 * Used to determine integer promotions and common types.
5
 *
6
 * Specification: $(LINK2 https://dlang.org/spec/type.html#integer-promotions, Integer Promotions),
7
 *   $(LINK2 https://dlang.org/spec/type.html#usual-arithmetic-conversions, Usual Arithmetic Conversions).
8
 *
9
 * Copyright:   Copyright (C) 1999-2020 by The D Language Foundation, All Rights Reserved
10
 * Authors:     $(LINK2 http://www.digitalmars.com, Walter Bright)
11
 * License:     $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
12
 * Source:      $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/impcnvtab.d, _impcnvtab.d)
13
 * Documentation:  https://dlang.org/phobos/dmd_impcnvtab.html
14
 * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/impcnvtab.d
15
 */
16

17
module dmd.impcnvtab;
18

19
import dmd.mtype;
20

21
immutable ENUMTY[TMAX][TMAX] impcnvResult = impCnvTab.impcnvResultTab;
22
immutable ENUMTY[TMAX][TMAX] impcnvType1 = impCnvTab.impcnvType1Tab;
23
immutable ENUMTY[TMAX][TMAX] impcnvType2 = impCnvTab.impcnvType2Tab;
24

25
private:
26

27
struct ImpCnvTab
28
{
29
    ENUMTY[TMAX][TMAX] impcnvResultTab;
30
    ENUMTY[TMAX][TMAX] impcnvType1Tab;
31
    ENUMTY[TMAX][TMAX] impcnvType2Tab;
32
}
33

34
enum ImpCnvTab impCnvTab = generateImpCnvTab();
35

36
ImpCnvTab generateImpCnvTab()
37
{
38 0
    ImpCnvTab impCnvTab;
39

40
    // Set conversion tables
41 0
    foreach (i; 0 .. cast(size_t)TMAX)
42
    {
43 0
        foreach (j; 0 .. cast(size_t)TMAX)
44
        {
45 0
            impCnvTab.impcnvResultTab[i][j] = Terror;
46 0
            impCnvTab.impcnvType1Tab[i][j] = Terror;
47 0
            impCnvTab.impcnvType2Tab[i][j] = Terror;
48
        }
49
    }
50

51
    void X(ENUMTY t1, ENUMTY t2, ENUMTY nt1, ENUMTY nt2, ENUMTY rt)
52
    {
53 0
        impCnvTab.impcnvResultTab[t1][t2] = rt;
54 0
        impCnvTab.impcnvType1Tab[t1][t2] = nt1;
55 0
        impCnvTab.impcnvType2Tab[t1][t2] = nt2;
56
    }
57

58
    /* ======================= */
59

60 0
    X(Tbool,Tbool,   Tbool,Tbool,    Tbool);
61 0
    X(Tbool,Tint8,   Tint32,Tint32,  Tint32);
62 0
    X(Tbool,Tuns8,   Tint32,Tint32,  Tint32);
63 0
    X(Tbool,Tint16,  Tint32,Tint32,  Tint32);
64 0
    X(Tbool,Tuns16,  Tint32,Tint32,  Tint32);
65 0
    X(Tbool,Tint32,  Tint32,Tint32,  Tint32);
66 0
    X(Tbool,Tuns32,  Tuns32,Tuns32,  Tuns32);
67 0
    X(Tbool,Tint64,  Tint64,Tint64,  Tint64);
68 0
    X(Tbool,Tuns64,  Tuns64,Tuns64,  Tuns64);
69 0
    X(Tbool,Tint128, Tint128,Tint128, Tint128);
70 0
    X(Tbool,Tuns128, Tuns128,Tuns128, Tuns128);
71

72 0
    X(Tbool,Tfloat32,     Tfloat32,Tfloat32,     Tfloat32);
73 0
    X(Tbool,Tfloat64,     Tfloat64,Tfloat64,     Tfloat64);
74 0
    X(Tbool,Tfloat80,     Tfloat80,Tfloat80,     Tfloat80);
75 0
    X(Tbool,Timaginary32, Tfloat32,Timaginary32, Tfloat32);
76 0
    X(Tbool,Timaginary64, Tfloat64,Timaginary64, Tfloat64);
77 0
    X(Tbool,Timaginary80, Tfloat80,Timaginary80, Tfloat80);
78 0
    X(Tbool,Tcomplex32,   Tfloat32,Tcomplex32,   Tcomplex32);
79 0
    X(Tbool,Tcomplex64,   Tfloat64,Tcomplex64,   Tcomplex64);
80 0
    X(Tbool,Tcomplex80,   Tfloat80,Tcomplex80,   Tcomplex80);
81

82
    /* ======================= */
83

84 0
    X(Tint8,Tint8,   Tint32,Tint32,  Tint32);
85 0
    X(Tint8,Tuns8,   Tint32,Tint32,  Tint32);
86 0
    X(Tint8,Tint16,  Tint32,Tint32,  Tint32);
87 0
    X(Tint8,Tuns16,  Tint32,Tint32,  Tint32);
88 0
    X(Tint8,Tint32,  Tint32,Tint32,  Tint32);
89 0
    X(Tint8,Tuns32,  Tuns32,Tuns32,  Tuns32);
90 0
    X(Tint8,Tint64,  Tint64,Tint64,  Tint64);
91 0
    X(Tint8,Tuns64,  Tuns64,Tuns64,  Tuns64);
92 0
    X(Tint8,Tint128, Tint128,Tint128, Tint128);
93 0
    X(Tint8,Tuns128, Tuns128,Tuns128, Tuns128);
94

95 0
    X(Tint8,Tfloat32,     Tfloat32,Tfloat32,     Tfloat32);
96 0
    X(Tint8,Tfloat64,     Tfloat64,Tfloat64,     Tfloat64);
97 0
    X(Tint8,Tfloat80,     Tfloat80,Tfloat80,     Tfloat80);
98 0
    X(Tint8,Timaginary32, Tfloat32,Timaginary32, Tfloat32);
99 0
    X(Tint8,Timaginary64, Tfloat64,Timaginary64, Tfloat64);
100 0
    X(Tint8,Timaginary80, Tfloat80,Timaginary80, Tfloat80);
101 0
    X(Tint8,Tcomplex32,   Tfloat32,Tcomplex32,   Tcomplex32);
102 0
    X(Tint8,Tcomplex64,   Tfloat64,Tcomplex64,   Tcomplex64);
103 0
    X(Tint8,Tcomplex80,   Tfloat80,Tcomplex80,   Tcomplex80);
104

105
    /* ======================= */
106

107 0
    X(Tuns8,Tuns8,   Tint32,Tint32,  Tint32);
108 0
    X(Tuns8,Tint16,  Tint32,Tint32,  Tint32);
109 0
    X(Tuns8,Tuns16,  Tint32,Tint32,  Tint32);
110 0
    X(Tuns8,Tint32,  Tint32,Tint32,  Tint32);
111 0
    X(Tuns8,Tuns32,  Tuns32,Tuns32,  Tuns32);
112 0
    X(Tuns8,Tint64,  Tint64,Tint64,  Tint64);
113 0
    X(Tuns8,Tuns64,  Tuns64,Tuns64,  Tuns64);
114 0
    X(Tuns8,Tint128,  Tint128,Tint128,  Tint128);
115 0
    X(Tuns8,Tuns128,  Tuns128,Tuns128,  Tuns128);
116

117 0
    X(Tuns8,Tfloat32,     Tfloat32,Tfloat32,     Tfloat32);
118 0
    X(Tuns8,Tfloat64,     Tfloat64,Tfloat64,     Tfloat64);
119 0
    X(Tuns8,Tfloat80,     Tfloat80,Tfloat80,     Tfloat80);
120 0
    X(Tuns8,Timaginary32, Tfloat32,Timaginary32, Tfloat32);
121 0
    X(Tuns8,Timaginary64, Tfloat64,Timaginary64, Tfloat64);
122 0
    X(Tuns8,Timaginary80, Tfloat80,Timaginary80, Tfloat80);
123 0
    X(Tuns8,Tcomplex32,   Tfloat32,Tcomplex32,   Tcomplex32);
124 0
    X(Tuns8,Tcomplex64,   Tfloat64,Tcomplex64,   Tcomplex64);
125 0
    X(Tuns8,Tcomplex80,   Tfloat80,Tcomplex80,   Tcomplex80);
126

127
    /* ======================= */
128

129 0
    X(Tint16,Tint16,  Tint32,Tint32,  Tint32);
130 0
    X(Tint16,Tuns16,  Tint32,Tint32,  Tint32);
131 0
    X(Tint16,Tint32,  Tint32,Tint32,  Tint32);
132 0
    X(Tint16,Tuns32,  Tuns32,Tuns32,  Tuns32);
133 0
    X(Tint16,Tint64,  Tint64,Tint64,  Tint64);
134 0
    X(Tint16,Tuns64,  Tuns64,Tuns64,  Tuns64);
135 0
    X(Tint16,Tint128,  Tint128,Tint128,  Tint128);
136 0
    X(Tint16,Tuns128,  Tuns128,Tuns128,  Tuns128);
137

138 0
    X(Tint16,Tfloat32,     Tfloat32,Tfloat32,     Tfloat32);
139 0
    X(Tint16,Tfloat64,     Tfloat64,Tfloat64,     Tfloat64);
140 0
    X(Tint16,Tfloat80,     Tfloat80,Tfloat80,     Tfloat80);
141 0
    X(Tint16,Timaginary32, Tfloat32,Timaginary32, Tfloat32);
142 0
    X(Tint16,Timaginary64, Tfloat64,Timaginary64, Tfloat64);
143 0
    X(Tint16,Timaginary80, Tfloat80,Timaginary80, Tfloat80);
144 0
    X(Tint16,Tcomplex32,   Tfloat32,Tcomplex32,   Tcomplex32);
145 0
    X(Tint16,Tcomplex64,   Tfloat64,Tcomplex64,   Tcomplex64);
146 0
    X(Tint16,Tcomplex80,   Tfloat80,Tcomplex80,   Tcomplex80);
147

148
    /* ======================= */
149

150 0
    X(Tuns16,Tuns16,  Tint32,Tint32,  Tint32);
151 0
    X(Tuns16,Tint32,  Tint32,Tint32,  Tint32);
152 0
    X(Tuns16,Tuns32,  Tuns32,Tuns32,  Tuns32);
153 0
    X(Tuns16,Tint64,  Tint64,Tint64,  Tint64);
154 0
    X(Tuns16,Tuns64,  Tuns64,Tuns64,  Tuns64);
155 0
    X(Tuns16,Tint128, Tint128,Tint128,  Tint128);
156 0
    X(Tuns16,Tuns128, Tuns128,Tuns128,  Tuns128);
157

158 0
    X(Tuns16,Tfloat32,     Tfloat32,Tfloat32,     Tfloat32);
159 0
    X(Tuns16,Tfloat64,     Tfloat64,Tfloat64,     Tfloat64);
160 0
    X(Tuns16,Tfloat80,     Tfloat80,Tfloat80,     Tfloat80);
161 0
    X(Tuns16,Timaginary32, Tfloat32,Timaginary32, Tfloat32);
162 0
    X(Tuns16,Timaginary64, Tfloat64,Timaginary64, Tfloat64);
163 0
    X(Tuns16,Timaginary80, Tfloat80,Timaginary80, Tfloat80);
164 0
    X(Tuns16,Tcomplex32,   Tfloat32,Tcomplex32,   Tcomplex32);
165 0
    X(Tuns16,Tcomplex64,   Tfloat64,Tcomplex64,   Tcomplex64);
166 0
    X(Tuns16,Tcomplex80,   Tfloat80,Tcomplex80,   Tcomplex80);
167

168
    /* ======================= */
169

170 0
    X(Tint32,Tint32,  Tint32,Tint32,  Tint32);
171 0
    X(Tint32,Tuns32,  Tuns32,Tuns32,  Tuns32);
172 0
    X(Tint32,Tint64,  Tint64,Tint64,  Tint64);
173 0
    X(Tint32,Tuns64,  Tuns64,Tuns64,  Tuns64);
174 0
    X(Tint32,Tint128, Tint128,Tint128,  Tint128);
175 0
    X(Tint32,Tuns128, Tuns128,Tuns128,  Tuns128);
176

177 0
    X(Tint32,Tfloat32,     Tfloat32,Tfloat32,     Tfloat32);
178 0
    X(Tint32,Tfloat64,     Tfloat64,Tfloat64,     Tfloat64);
179 0
    X(Tint32,Tfloat80,     Tfloat80,Tfloat80,     Tfloat80);
180 0
    X(Tint32,Timaginary32, Tfloat32,Timaginary32, Tfloat32);
181 0
    X(Tint32,Timaginary64, Tfloat64,Timaginary64, Tfloat64);
182 0
    X(Tint32,Timaginary80, Tfloat80,Timaginary80, Tfloat80);
183 0
    X(Tint32,Tcomplex32,   Tfloat32,Tcomplex32,   Tcomplex32);
184 0
    X(Tint32,Tcomplex64,   Tfloat64,Tcomplex64,   Tcomplex64);
185 0
    X(Tint32,Tcomplex80,   Tfloat80,Tcomplex80,   Tcomplex80);
186

187
    /* ======================= */
188

189 0
    X(Tuns32,Tuns32,  Tuns32,Tuns32,  Tuns32);
190 0
    X(Tuns32,Tint64,  Tint64,Tint64,  Tint64);
191 0
    X(Tuns32,Tuns64,  Tuns64,Tuns64,  Tuns64);
192 0
    X(Tuns32,Tint128,  Tint128,Tint128,  Tint128);
193 0
    X(Tuns32,Tuns128,  Tuns128,Tuns128,  Tuns128);
194

195 0
    X(Tuns32,Tfloat32,     Tfloat32,Tfloat32,     Tfloat32);
196 0
    X(Tuns32,Tfloat64,     Tfloat64,Tfloat64,     Tfloat64);
197 0
    X(Tuns32,Tfloat80,     Tfloat80,Tfloat80,     Tfloat80);
198 0
    X(Tuns32,Timaginary32, Tfloat32,Timaginary32, Tfloat32);
199 0
    X(Tuns32,Timaginary64, Tfloat64,Timaginary64, Tfloat64);
200 0
    X(Tuns32,Timaginary80, Tfloat80,Timaginary80, Tfloat80);
201 0
    X(Tuns32,Tcomplex32,   Tfloat32,Tcomplex32,   Tcomplex32);
202 0
    X(Tuns32,Tcomplex64,   Tfloat64,Tcomplex64,   Tcomplex64);
203 0
    X(Tuns32,Tcomplex80,   Tfloat80,Tcomplex80,   Tcomplex80);
204

205
    /* ======================= */
206

207 0
    X(Tint64,Tint64,  Tint64,Tint64,  Tint64);
208 0
    X(Tint64,Tuns64,  Tuns64,Tuns64,  Tuns64);
209 0
    X(Tint64,Tint128,  Tint128,Tint128,  Tint128);
210 0
    X(Tint64,Tuns128,  Tuns128,Tuns128,  Tuns128);
211

212 0
    X(Tint64,Tfloat32,     Tfloat32,Tfloat32,     Tfloat32);
213 0
    X(Tint64,Tfloat64,     Tfloat64,Tfloat64,     Tfloat64);
214 0
    X(Tint64,Tfloat80,     Tfloat80,Tfloat80,     Tfloat80);
215 0
    X(Tint64,Timaginary32, Tfloat32,Timaginary32, Tfloat32);
216 0
    X(Tint64,Timaginary64, Tfloat64,Timaginary64, Tfloat64);
217 0
    X(Tint64,Timaginary80, Tfloat80,Timaginary80, Tfloat80);
218 0
    X(Tint64,Tcomplex32,   Tfloat32,Tcomplex32,   Tcomplex32);
219 0
    X(Tint64,Tcomplex64,   Tfloat64,Tcomplex64,   Tcomplex64);
220 0
    X(Tint64,Tcomplex80,   Tfloat80,Tcomplex80,   Tcomplex80);
221

222
    /* ======================= */
223

224 0
    X(Tuns64,Tuns64,  Tuns64,Tuns64,  Tuns64);
225 0
    X(Tuns64,Tint128,  Tint128,Tint128,  Tint128);
226 0
    X(Tuns64,Tuns128,  Tuns128,Tuns128,  Tuns128);
227

228 0
    X(Tuns64,Tfloat32,     Tfloat32,Tfloat32,     Tfloat32);
229 0
    X(Tuns64,Tfloat64,     Tfloat64,Tfloat64,     Tfloat64);
230 0
    X(Tuns64,Tfloat80,     Tfloat80,Tfloat80,     Tfloat80);
231 0
    X(Tuns64,Timaginary32, Tfloat32,Timaginary32, Tfloat32);
232 0
    X(Tuns64,Timaginary64, Tfloat64,Timaginary64, Tfloat64);
233 0
    X(Tuns64,Timaginary80, Tfloat80,Timaginary80, Tfloat80);
234 0
    X(Tuns64,Tcomplex32,   Tfloat32,Tcomplex32,   Tcomplex32);
235 0
    X(Tuns64,Tcomplex64,   Tfloat64,Tcomplex64,   Tcomplex64);
236 0
    X(Tuns64,Tcomplex80,   Tfloat80,Tcomplex80,   Tcomplex80);
237

238
    /* ======================= */
239

240 0
    X(Tint128,Tint128,  Tint128,Tint128,  Tint128);
241 0
    X(Tint128,Tuns128,  Tuns128,Tuns128,  Tuns128);
242

243 0
    X(Tint128,Tfloat32,     Tfloat32,Tfloat32,     Tfloat32);
244 0
    X(Tint128,Tfloat64,     Tfloat64,Tfloat64,     Tfloat64);
245 0
    X(Tint128,Tfloat80,     Tfloat80,Tfloat80,     Tfloat80);
246 0
    X(Tint128,Timaginary32, Tfloat32,Timaginary32, Tfloat32);
247 0
    X(Tint128,Timaginary64, Tfloat64,Timaginary64, Tfloat64);
248 0
    X(Tint128,Timaginary80, Tfloat80,Timaginary80, Tfloat80);
249 0
    X(Tint128,Tcomplex32,   Tfloat32,Tcomplex32,   Tcomplex32);
250 0
    X(Tint128,Tcomplex64,   Tfloat64,Tcomplex64,   Tcomplex64);
251 0
    X(Tint128,Tcomplex80,   Tfloat80,Tcomplex80,   Tcomplex80);
252

253
    /* ======================= */
254

255 0
    X(Tuns128,Tuns128,  Tuns128,Tuns128,  Tuns128);
256

257 0
    X(Tuns128,Tfloat32,     Tfloat32,Tfloat32,     Tfloat32);
258 0
    X(Tuns128,Tfloat64,     Tfloat64,Tfloat64,     Tfloat64);
259 0
    X(Tuns128,Tfloat80,     Tfloat80,Tfloat80,     Tfloat80);
260 0
    X(Tuns128,Timaginary32, Tfloat32,Timaginary32, Tfloat32);
261 0
    X(Tuns128,Timaginary64, Tfloat64,Timaginary64, Tfloat64);
262 0
    X(Tuns128,Timaginary80, Tfloat80,Timaginary80, Tfloat80);
263 0
    X(Tuns128,Tcomplex32,   Tfloat32,Tcomplex32,   Tcomplex32);
264 0
    X(Tuns128,Tcomplex64,   Tfloat64,Tcomplex64,   Tcomplex64);
265 0
    X(Tuns128,Tcomplex80,   Tfloat80,Tcomplex80,   Tcomplex80);
266

267
    /* ======================= */
268

269 0
    X(Tfloat32,Tfloat32,  Tfloat32,Tfloat32, Tfloat32);
270 0
    X(Tfloat32,Tfloat64,  Tfloat64,Tfloat64, Tfloat64);
271 0
    X(Tfloat32,Tfloat80,  Tfloat80,Tfloat80, Tfloat80);
272

273 0
    X(Tfloat32,Timaginary32,  Tfloat32,Timaginary32, Tfloat32);
274 0
    X(Tfloat32,Timaginary64,  Tfloat64,Timaginary64, Tfloat64);
275 0
    X(Tfloat32,Timaginary80,  Tfloat80,Timaginary80, Tfloat80);
276

277 0
    X(Tfloat32,Tcomplex32,  Tfloat32,Tcomplex32, Tcomplex32);
278 0
    X(Tfloat32,Tcomplex64,  Tfloat64,Tcomplex64, Tcomplex64);
279 0
    X(Tfloat32,Tcomplex80,  Tfloat80,Tcomplex80, Tcomplex80);
280

281
    /* ======================= */
282

283 0
    X(Tfloat64,Tfloat64,  Tfloat64,Tfloat64, Tfloat64);
284 0
    X(Tfloat64,Tfloat80,  Tfloat80,Tfloat80, Tfloat80);
285

286 0
    X(Tfloat64,Timaginary32,  Tfloat64,Timaginary64, Tfloat64);
287 0
    X(Tfloat64,Timaginary64,  Tfloat64,Timaginary64, Tfloat64);
288 0
    X(Tfloat64,Timaginary80,  Tfloat80,Timaginary80, Tfloat80);
289

290 0
    X(Tfloat64,Tcomplex32,  Tfloat64,Tcomplex64, Tcomplex64);
291 0
    X(Tfloat64,Tcomplex64,  Tfloat64,Tcomplex64, Tcomplex64);
292 0
    X(Tfloat64,Tcomplex80,  Tfloat80,Tcomplex80, Tcomplex80);
293

294
    /* ======================= */
295

296 0
    X(Tfloat80,Tfloat80,  Tfloat80,Tfloat80, Tfloat80);
297

298 0
    X(Tfloat80,Timaginary32,  Tfloat80,Timaginary80, Tfloat80);
299 0
    X(Tfloat80,Timaginary64,  Tfloat80,Timaginary80, Tfloat80);
300 0
    X(Tfloat80,Timaginary80,  Tfloat80,Timaginary80, Tfloat80);
301

302 0
    X(Tfloat80,Tcomplex32,  Tfloat80,Tcomplex80, Tcomplex80);
303 0
    X(Tfloat80,Tcomplex64,  Tfloat80,Tcomplex80, Tcomplex80);
304 0
    X(Tfloat80,Tcomplex80,  Tfloat80,Tcomplex80, Tcomplex80);
305

306
    /* ======================= */
307

308 0
    X(Timaginary32,Timaginary32,  Timaginary32,Timaginary32, Timaginary32);
309 0
    X(Timaginary32,Timaginary64,  Timaginary64,Timaginary64, Timaginary64);
310 0
    X(Timaginary32,Timaginary80,  Timaginary80,Timaginary80, Timaginary80);
311

312 0
    X(Timaginary32,Tcomplex32,  Timaginary32,Tcomplex32, Tcomplex32);
313 0
    X(Timaginary32,Tcomplex64,  Timaginary64,Tcomplex64, Tcomplex64);
314 0
    X(Timaginary32,Tcomplex80,  Timaginary80,Tcomplex80, Tcomplex80);
315

316
    /* ======================= */
317

318 0
    X(Timaginary64,Timaginary64,  Timaginary64,Timaginary64, Timaginary64);
319 0
    X(Timaginary64,Timaginary80,  Timaginary80,Timaginary80, Timaginary80);
320

321 0
    X(Timaginary64,Tcomplex32,  Timaginary64,Tcomplex64, Tcomplex64);
322 0
    X(Timaginary64,Tcomplex64,  Timaginary64,Tcomplex64, Tcomplex64);
323 0
    X(Timaginary64,Tcomplex80,  Timaginary80,Tcomplex80, Tcomplex80);
324

325
    /* ======================= */
326

327 0
    X(Timaginary80,Timaginary80,  Timaginary80,Timaginary80, Timaginary80);
328

329 0
    X(Timaginary80,Tcomplex32,  Timaginary80,Tcomplex80, Tcomplex80);
330 0
    X(Timaginary80,Tcomplex64,  Timaginary80,Tcomplex80, Tcomplex80);
331 0
    X(Timaginary80,Tcomplex80,  Timaginary80,Tcomplex80, Tcomplex80);
332

333
    /* ======================= */
334

335 0
    X(Tcomplex32,Tcomplex32,  Tcomplex32,Tcomplex32, Tcomplex32);
336 0
    X(Tcomplex32,Tcomplex64,  Tcomplex64,Tcomplex64, Tcomplex64);
337 0
    X(Tcomplex32,Tcomplex80,  Tcomplex80,Tcomplex80, Tcomplex80);
338

339
    /* ======================= */
340

341 0
    X(Tcomplex64,Tcomplex64,  Tcomplex64,Tcomplex64, Tcomplex64);
342 0
    X(Tcomplex64,Tcomplex80,  Tcomplex80,Tcomplex80, Tcomplex80);
343

344
    /* ======================= */
345

346 0
    X(Tcomplex80,Tcomplex80,  Tcomplex80,Tcomplex80, Tcomplex80);
347

348 0
    foreach (i; 0 .. cast(size_t)TMAX)
349
    {
350 0
        foreach (j; 0 .. cast(size_t)TMAX)
351
        {
352 0
            if (impCnvTab.impcnvResultTab[i][j] == Terror)
353
            {
354 0
                impCnvTab.impcnvResultTab[i][j] = impCnvTab.impcnvResultTab[j][i];
355 0
                impCnvTab.impcnvType1Tab[i][j] = impCnvTab.impcnvType2Tab[j][i];
356 0
                impCnvTab.impcnvType2Tab[i][j] = impCnvTab.impcnvType1Tab[j][i];
357
            }
358
        }
359
    }
360

361 0
    return impCnvTab;
362
}

Read our documentation on viewing source code .

Loading