Changeset 1853 for cobra/trunk/Source/BackEndClr/SharpGenerator.cobra
- Timestamp:
- 12/30/08 09:14:09 (3 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
cobra/trunk/Source/BackEndClr/SharpGenerator.cobra
r1849 r1853 973 973 return sharp 974 974 975 def extendedMethodGenericParams(genericParams as IList<of IType>) as IList<of IType> 976 """ 977 This is a hook for Extension and Method which have to deal with extensions on generic classes. 978 """ 979 ensure 980 old genericParams == genericParams 981 result.count >= genericParams.count 982 body 983 return genericParams 984 975 985 def writeSharpDef(sw as SharpWriter) 976 986 base.writeSharpDef(sw) … … 1275 1285 is partial 1276 1286 1287 get _computeSharpRef as String is override 1288 sharp = .sharpName 1289 if .parentNameSpace and not .parentNameSpace.isRoot 1290 sharp = .parentNameSpace.sharpQualifier + sharp 1291 else if .parentBox 1292 sharp = .parentBox.sharpRef + '.' + sharp 1293 return sharp 1294 1277 1295 get sharpInit as String is override 1278 1296 return _extendedBox.sharpInit … … 1285 1303 1286 1304 var _backEndName as String? 1287 1305 1288 1306 get sharpName as String is override 1289 1307 if not _backEndName … … 1293 1311 get sharpThis as String is override 1294 1312 return '_lh_this' 1313 1314 def extendedMethodGenericParams(genericParams as IList<of IType>) as IList<of IType> is override 1315 if .isGeneric 1316 # the generated static C# method will need the generic params of the extension on it 1317 # since C# itself doesn't have "extension types", only extension methods 1318 r = List<of IType>(.genericParams) 1319 r.addRange(genericParams) 1320 return r 1321 else 1322 return base.extendedMethodGenericParams(genericParams) 1295 1323 1296 1324 def writeSharpDefName(sw as SharpWriter) is override … … 1780 1808 1781 1809 get sharpGenericParams as String is override 1782 if _genericParams.count 1810 params = .parentBox.extendedMethodGenericParams(_genericParams) 1811 if params.count 1783 1812 sb = StringBuilder() 1784 1813 sb.append('<') 1785 1814 sep = '' 1786 for param in _genericParams1815 for param in params 1787 1816 sb.append(sep) 1788 1817 sb.append(param.sharpName)



