comparison dmd/Import.d @ 128:e6e542f37b94

Some more Array -> Vector conversions
author Eldar Insafutdinov <e.insafutdinov@gmail.com>
date Sat, 04 Sep 2010 01:33:05 +0100
parents e28b18c23469
children e7769d53e750
comparison
equal deleted inserted replaced
127:9ee9b55452cb 128:e6e542f37b94
1 module dmd.Import; 1 module dmd.Import;
2 2
3 import dmd.common; 3 import dmd.common;
4 import dmd.Dsymbol; 4 import dmd.Dsymbol;
5 import dmd.Array; 5 import dmd.Array;
6 import dmd.ArrayTypes;
6 import dmd.DsymbolTable; 7 import dmd.DsymbolTable;
7 import dmd.PROT; 8 import dmd.PROT;
8 import dmd.Identifier; 9 import dmd.Identifier;
9 import dmd.Module; 10 import dmd.Module;
10 import dmd.Package; 11 import dmd.Package;
39 } 40 }
40 } 41 }
41 42
42 class Import : Dsymbol 43 class Import : Dsymbol
43 { 44 {
44 Array packages; // array of Identifier's representing packages 45 Identifiers packages; // array of Identifier's representing packages
45 Identifier id; // module Identifier 46 Identifier id; // module Identifier
46 Identifier aliasId; 47 Identifier aliasId;
47 int isstatic; // !=0 if static import 48 int isstatic; // !=0 if static import
48 49
49 // Pairs of alias=name to bind into current namespace 50 // Pairs of alias=name to bind into current namespace
53 Array aliasdecls; // AliasDeclarations for names/aliases 54 Array aliasdecls; // AliasDeclarations for names/aliases
54 55
55 Module mod; 56 Module mod;
56 Package pkg; // leftmost package/module 57 Package pkg; // leftmost package/module
57 58
58 this(Loc loc, Array packages, Identifier id, Identifier aliasId, int isstatic) 59 this(Loc loc, Identifiers packages, Identifier id, Identifier aliasId, int isstatic)
59 { 60 {
60 super(id); 61 super(id);
61 62
62 names = new Array(); 63 names = new Array();
63 aliases = new Array(); 64 aliases = new Array();
72 73
73 if (aliasId) 74 if (aliasId)
74 this.ident = aliasId; 75 this.ident = aliasId;
75 // Kludge to change Import identifier to first package 76 // Kludge to change Import identifier to first package
76 else if (packages && packages.dim) 77 else if (packages && packages.dim)
77 this.ident = cast(Identifier)packages.data[0]; 78 this.ident = packages[0];
78 } 79 }
79 80
80 void addAlias(Identifier name, Identifier alias_) 81 void addAlias(Identifier name, Identifier alias_)
81 { 82 {
82 if (isstatic) 83 if (isstatic)
245 StorageClassDeclaration.stcToCBuffer(ob, STC.STCstatic); 246 StorageClassDeclaration.stcToCBuffer(ob, STC.STCstatic);
246 ob.writestring(": "); 247 ob.writestring(": ");
247 248
248 if (packages) 249 if (packages)
249 { 250 {
250 for (size_t i = 0; i < packages.dim; i++) 251 foreach (pid; packages)
251 { 252 {
252 Identifier pid = cast(Identifier)packages.data[i];
253 ob.printf("%s.", pid.toChars()); 253 ob.printf("%s.", pid.toChars());
254 } 254 }
255 } 255 }
256 256
257 ob.writestring(id.toChars()); 257 ob.writestring(id.toChars());