116
120
if (targ_i->tic != tic_tobject) {
117
printf("Error: Using '.' with type which is not an object.\n");
121
cspan_print(taccess->texpr->cspan);
122
printf(" Error: Using '.' with type which is not an "
118
124
*res = tdata_item_new(tic_ignore);
125
131
sym = symbol_lookup_in_csi(prog, base_csi, taccess->member_name);
126
132
if (sym == NULL) {
127
printf("Error: CSI '");
133
cspan_print(taccess->member_name->cspan);
134
printf(" Error: CSI '");
128
135
symbol_print_fqn(csi_to_symbol(base_csi));
129
136
printf("' has no member named '%s'.\n",
130
137
strtab_get_str(taccess->member_name->sid));
142
149
tobject->static_ref = b_false;
143
150
tobject->csi = sym->u.csi;
144
list_init(&tobject->targs); /* XXX */
151
list_init(&tobject->targs);
154
/* It is not possible to reference a constructor explicitly. */
147
/* Construct type item. */
148
titem = tdata_item_new(tic_tdeleg);
149
tdeleg = tdata_deleg_new();
150
titem->u.tdeleg = tdeleg;
157
/* Fetch stored delegate type. */
158
deleg = symbol_to_deleg(sym);
159
assert(deleg != NULL);
160
if (deleg->titem == NULL) {
162
* Prepare a partial delegate which will be completed
165
titem = tdata_item_new(tic_tdeleg);
166
tdeleg = tdata_deleg_new();
167
titem->u.tdeleg = tdeleg;
168
tdeleg->deleg = deleg;
152
tdeleg->deleg = sym->u.deleg;
171
deleg->titem = titem;
173
titem = deleg->titem;
177
/* Fetch stored enum type. */
178
enum_d = symbol_to_enum(sym);
179
assert(enum_d != NULL);
180
if (enum_d->titem == NULL) {
182
* Prepare a partial enum whic will be completed
185
titem = tdata_item_new(tic_tenum);
186
tenum = tdata_enum_new();
187
titem->u.tenum = tenum;
188
tenum->enum_d = enum_d;
190
titem = enum_d->titem;
157
printf("Error: Symbol '");
196
cspan_print(taccess->member_name->cspan);
197
printf(" Error: Symbol '");
158
198
symbol_print_fqn(sym);
159
199
printf("' is not a type.\n");
160
200
titem = tdata_item_new(tic_ignore);
292
334
/* Look for symbol */
293
335
sym = symbol_lookup_in_csi(prog, ctx, tnameref->name);
294
336
if (sym == NULL) {
295
printf("Error: Symbol '%s' not found.\n",
337
cspan_print(tnameref->texpr->cspan);
338
printf(" Error: Symbol '%s' not found.\n",
296
339
strtab_get_str(tnameref->name->sid));
297
340
*res = tdata_item_new(tic_ignore);
308
351
tobject->static_ref = b_false;
309
352
tobject->csi = sym->u.csi;
310
list_init(&tobject->targs); /* XXX */
353
list_init(&tobject->targs);
356
/* It is not possible to reference a constructor explicitly. */
313
359
/* Fetch stored delegate type. */
314
360
deleg = symbol_to_deleg(sym);
329
375
titem = deleg->titem;
379
/* Fetch stored enum type. */
380
enum_d = symbol_to_enum(sym);
381
assert(enum_d != NULL);
382
if (enum_d->titem == NULL) {
384
* Prepare a partial enum whic will be completed
387
titem = tdata_item_new(tic_tenum);
388
tenum = tdata_enum_new();
389
titem->u.tenum = tenum;
390
tenum->enum_d = enum_d;
392
titem = enum_d->titem;
335
printf("Error: Symbol '");
398
cspan_print(tnameref->texpr->cspan);
399
printf(" Error: Symbol '");
336
400
symbol_print_fqn(sym);
337
401
printf("' is not a type.\n");
338
402
titem = tdata_item_new(tic_ignore);
378
442
run_texpr(prog, ctx, tapply->gtype, &base_ti);
380
444
if (base_ti->tic != tic_tobject) {
381
printf("Error: Base type of generic application is not "
445
cspan_print(tapply->gtype->cspan);
446
printf(" Error: Base type of generic application is not "
383
448
*res = tdata_item_new(tic_ignore);
411
476
if (farg_n != NULL || arg_n != NULL) {
412
printf("Error: Incorrect number of type arguments.\n");
477
cspan_print(tapply->texpr->cspan);
478
printf(" Error: Incorrect number of type arguments.\n");
413
479
*res = tdata_item_new(tic_ignore);