设为首页 加入收藏

TOP

Vczh Library++3.0之ManagedX语言检查类型的可见性 (三)
2014-11-23 22:30:32 来源: 作者: 【 】 浏览:7
Tags:Vczh Library 3.0 ManagedX 语言 检查 类型 可见
CodeException::GetTypeInvisible(languageElement, currentType));
91 return;
92 }
93 }
94 else
95 {
96 switch(currentAccessor)
97 {
98 case declatt::Public:
99 case declatt::Internal:
100 case declatt::ProtectedInternal:
101 break;
102 default:
103 argument.errors.Add(ManagedLanguageCodeException::GetTypeInvisible(languageElement, currentType));
104 return;
105 }
106 }
107 }
108
109 if(currentSymbol->GetSymbolType()==ManagedSymbolItem::TypeRename)
110 {
111 ManagedSymbolTypeRename* symbol=dynamic_cast(currentSymbol);
112 if(currentType->GetGenericDeclaration())
113 {
114 Dictionary replacement;
115 for(vint i=0;iorderedGenericParameterNames.Count();i++)
116 {
117 ManagedTypeSymbol* key=argument.symbolManager->GetType(symbol->ItemGroup(symbol->orderedGenericParameterNames[i])->Items()[0]);
118 ManagedTypeSymbol* value=currentType->GetGenericArguments()[i];
119 replacement.Add(key, value);
120 }
121 parentType=argument.symbolManager->ReplaceGenericArguments(currentType, replacement.Wrap());
122 }br /> 123 else
124 {
125 parentType=symbol->type;
126 }
127 }
128 else
129 {
130 parentType=currentType;
131 }
132 }
133 }
134
135 void CollectBaseTypes(ManagedTypeSymbol* thisType, List& baseTypes, const MAP& argument)
136 {
137 vint oldCount=baseTypes.Count();
138 if(thisType->GetGenericDeclaration())
139 {
140 ManagedSymbolDeclaration* symbol=dynamic_cast(thisType->GetGenericDeclaration()->GetSymbol());
141
142 Dictionary replacement;
143 for(vint i=0;iorderedGenericParameterNames.Count();i++)
144 {
145 ManagedTypeSymbol* key=argument.symbolManager->GetType(symbol->ItemGroup(symbol->orderedGenericParameterNames[i])->Items()[0]);
146 ManagedTypeSymbol* value=thisType->GetGenericArguments()[i];
147 replacement.Add(key, value);
148 }
149
150 FOREACH(ManagedTypeSymbol*, baseType, sym
首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HDU 1116 Play on Words 下一篇pipe 函数 (C语言)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: