Beispiel #1
0
        void PrepareRenameGenericParams(IEnumerable <MGenericParamDef> genericParams, INameChecker checker, IEnumerable <MGenericParamDef> otherGenericParams)
        {
            var usedNames   = new Dictionary <string, bool>(StringComparer.Ordinal);
            var nameCreator = new GenericParamNameCreator();

            if (otherGenericParams != null)
            {
                foreach (var param in otherGenericParams)
                {
                    var gpInfo = memberInfos.GenericParam(param);
                    usedNames[gpInfo.newName] = true;
                }
            }

            foreach (var param in genericParams)
            {
                var gpInfo = memberInfos.GenericParam(param);
                if (!checker.IsValidGenericParamName(gpInfo.oldName) || usedNames.ContainsKey(gpInfo.oldName))
                {
                    string newName;
                    do
                    {
                        newName = nameCreator.Create();
                    } while (usedNames.ContainsKey(newName));
                    usedNames[newName] = true;
                    gpInfo.Rename(newName);
                }
            }
        }
Beispiel #2
0
		void PrepareRenameGenericParams(IEnumerable<MGenericParamDef> genericParams, INameChecker checker, IEnumerable<MGenericParamDef> otherGenericParams) {
			var usedNames = new Dictionary<string, bool>(StringComparer.Ordinal);
			var nameCreator = new GenericParamNameCreator();

			if (otherGenericParams != null) {
				foreach (var param in otherGenericParams) {
					var gpInfo = memberInfos.GenericParam(param);
					usedNames[gpInfo.newName] = true;
				}
			}

			foreach (var param in genericParams) {
				var gpInfo = memberInfos.GenericParam(param);
				if (!checker.IsValidGenericParamName(gpInfo.oldName) || usedNames.ContainsKey(gpInfo.oldName)) {
					string newName;
					do {
						newName = nameCreator.Create();
					} while (usedNames.ContainsKey(newName));
					usedNames[newName] = true;
					gpInfo.Rename(newName);
				}
			}
		}