Skip to content

Commit c156c9c

Browse files
authored
Use interpolated strings 4 (PowerShell#18980)
1 parent ebed597 commit c156c9c

File tree

17 files changed

+42
-65
lines changed

17 files changed

+42
-65
lines changed

src/System.Management.Automation/engine/parser/Compiler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1149,7 +1149,7 @@ private Expression UpdatePosition(Ast ast)
11491149

11501150
internal ParameterExpression NewTemp(Type type, string name)
11511151
{
1152-
return Expression.Variable(type, string.Format(CultureInfo.InvariantCulture, "{0}{1}", name, _tempCounter++));
1152+
return Expression.Variable(type, string.Create(CultureInfo.InvariantCulture, $"{name}{_tempCounter++}"));
11531153
}
11541154

11551155
internal static Type GetTypeConstraintForMethodResolution(ExpressionAst expr)

src/System.Management.Automation/engine/parser/DebugViewWriter.cs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -985,7 +985,7 @@ protected override Expression VisitBlock(BlockExpression node) {
985985
// Display <type> if the type of the BlockExpression is different from the
986986
// last expression's type in the block.
987987
if (node.Type != node.Expressions[node.Expressions.Count - 1].Type) {
988-
Out(string.Format(CultureInfo.CurrentCulture, "<{0}>", node.Type.ToString()));
988+
Out(string.Create(CultureInfo.CurrentCulture, $"<{node.Type}>"));
989989
}
990990

991991
VisitDeclarations(node.Variables);
@@ -1124,7 +1124,7 @@ protected override Expression VisitIndex(IndexExpression node) {
11241124
}
11251125

11261126
protected override Expression VisitExtension(Expression node) {
1127-
Out(string.Format(CultureInfo.CurrentCulture, ".Extension<{0}>", node.GetType().ToString()));
1127+
Out(string.Create(CultureInfo.CurrentCulture, $".Extension<{node.GetType()}>"));
11281128

11291129
if (node.CanReduce) {
11301130
Out(Flow.Space, "{", Flow.NewLine);
@@ -1151,25 +1151,21 @@ protected override Expression VisitDebugInfo(DebugInfoExpression node) {
11511151
}
11521152

11531153
private void DumpLabel(LabelTarget target) {
1154-
Out(string.Format(CultureInfo.CurrentCulture, ".LabelTarget {0}:", GetLabelTargetName(target)));
1154+
Out(string.Create(CultureInfo.CurrentCulture, $".LabelTarget {GetLabelTargetName(target)}:"));
11551155
}
11561156

11571157
private string GetLabelTargetName(LabelTarget target) {
11581158
if (string.IsNullOrEmpty(target.Name)) {
11591159
// Create the label target name as #Label1, #Label2, etc.
1160-
return string.Format(CultureInfo.CurrentCulture, "#Label{0}", GetLabelTargetId(target));
1160+
return string.Create(CultureInfo.CurrentCulture, $"#Label{GetLabelTargetId(target)}");
11611161
} else {
11621162
return GetDisplayName(target.Name);
11631163
}
11641164
}
11651165

11661166
private void WriteLambda(LambdaExpression lambda) {
11671167
Out(
1168-
string.Format(
1169-
CultureInfo.CurrentCulture,
1170-
".Lambda {0}<{1}>",
1171-
GetLambdaName(lambda),
1172-
lambda.Type.ToString())
1168+
string.Create(CultureInfo.CurrentCulture, $".Lambda {GetLambdaName(lambda)}<{lambda.Type}>")
11731169
);
11741170

11751171
VisitDeclarations(lambda.Parameters);
@@ -1205,7 +1201,7 @@ private static bool ContainsWhiteSpace(string name) {
12051201
}
12061202

12071203
private static string QuoteName(string name) {
1208-
return string.Format(CultureInfo.CurrentCulture, "'{0}'", name);
1204+
return string.Create(CultureInfo.CurrentCulture, $"'{name}'");
12091205
}
12101206

12111207
private static string GetDisplayName(string name) {

src/System.Management.Automation/engine/parser/PSType.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ public DefineTypeHelper(Parser parser, ModuleBuilder module, TypeDefinitionAst t
296296
var baseClass = this.GetBaseTypes(parser, typeDefinitionAst, out interfaces);
297297

298298
_typeBuilder = module.DefineType(typeName, Reflection.TypeAttributes.Class | Reflection.TypeAttributes.Public, baseClass, interfaces.ToArray());
299-
_staticHelpersTypeBuilder = module.DefineType(string.Format(CultureInfo.InvariantCulture, "{0}_<staticHelpers>", typeName), Reflection.TypeAttributes.Class);
299+
_staticHelpersTypeBuilder = module.DefineType(string.Create(CultureInfo.InvariantCulture, $"{typeName}_<staticHelpers>"), Reflection.TypeAttributes.Class);
300300
DefineCustomAttributes(_typeBuilder, typeDefinitionAst.Attributes, _parser, AttributeTargets.Class);
301301
_typeDefinitionAst.Type = _typeBuilder;
302302

@@ -629,7 +629,7 @@ private PropertyBuilder EmitPropertyIl(PropertyMemberAst propertyMemberAst, Type
629629
getSetAttributes |= Reflection.MethodAttributes.Static;
630630
}
631631
// C# naming convention for backing fields.
632-
string backingFieldName = string.Format(CultureInfo.InvariantCulture, "<{0}>k__BackingField", propertyMemberAst.Name);
632+
string backingFieldName = string.Create(CultureInfo.InvariantCulture, $"<{propertyMemberAst.Name}>k__BackingField");
633633
var backingField = _typeBuilder.DefineField(backingFieldName, type, backingFieldAttributes);
634634

635635
bool hasValidateAttributes = false;
@@ -937,7 +937,7 @@ private void DefineMethodBody(
937937
Type returnType,
938938
Action<int, string> parameterNameSetter)
939939
{
940-
var wrapperFieldName = string.Format(CultureInfo.InvariantCulture, "<{0}>", metadataToken);
940+
var wrapperFieldName = string.Create(CultureInfo.InvariantCulture, $"<{metadataToken}>");
941941
var scriptBlockWrapperField = _staticHelpersTypeBuilder.DefineField(wrapperFieldName,
942942
typeof(ScriptBlockMemberMethodWrapper),
943943
FieldAttributes.Assembly | FieldAttributes.Static);

src/System.Management.Automation/engine/parser/Parser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8044,7 +8044,7 @@ private static void AssertErrorIdCorrespondsToMsgString(string errorId, string e
80448044
}
80458045
}
80468046

8047-
Diagnostics.Assert(msgCorrespondsToString, string.Format("Parser error ID \"{0}\" must correspond to the error message \"{1}\"", errorId, errorMsg));
8047+
Diagnostics.Assert(msgCorrespondsToString, string.Create(CultureInfo.InvariantCulture, $"Parser error ID \"{errorId}\" must correspond to the error message \"{errorMsg}\""));
80488048
}
80498049

80508050
private static object[] arrayOfOneArg

src/System.Management.Automation/engine/parser/Position.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -766,9 +766,7 @@ public string Text
766766
_endPosition.ColumnNumber - _startPosition.ColumnNumber);
767767
}
768768

769-
return string.Format(CultureInfo.InvariantCulture, "{0}...{1}",
770-
_startPosition.Line.Substring(_startPosition.ColumnNumber),
771-
_endPosition.Line.Substring(0, _endPosition.ColumnNumber));
769+
return string.Create(CultureInfo.InvariantCulture, $"{_startPosition.Line.AsSpan(_startPosition.ColumnNumber)}...{ _endPosition.Line.AsSpan(0, _endPosition.ColumnNumber)}");
772770
}
773771
else
774772
{

src/System.Management.Automation/engine/parser/SymbolResolver.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ public override AstVisitAction VisitAssignmentStatement(AssignmentStatementAst a
404404
var typeAst = _symbolTable.GetCurrentTypeDefinitionAst();
405405
Diagnostics.Assert(typeAst != null, "Method scopes can exist only inside type definitions.");
406406

407-
string typeString = string.Format(CultureInfo.InvariantCulture, "[{0}]::", typeAst.Name);
407+
string typeString = string.Create(CultureInfo.InvariantCulture, $"[{typeAst.Name}]::");
408408
_parser.ReportError(variableExpressionAst.Extent,
409409
nameof(ParserStrings.MissingTypeInStaticPropertyAssignment),
410410
ParserStrings.MissingTypeInStaticPropertyAssignment,

src/System.Management.Automation/engine/parser/ast.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8898,7 +8898,7 @@ internal Type GetGenericType(Type generic)
88988898
if (!TypeName.FullName.Contains('`'))
88998899
{
89008900
var newTypeName = new TypeName(Extent,
8901-
string.Format(CultureInfo.InvariantCulture, "{0}`{1}", TypeName.FullName, GenericArguments.Count));
8901+
string.Create(CultureInfo.InvariantCulture, $"{TypeName.FullName}`{GenericArguments.Count}"));
89028902
generic = newTypeName.GetReflectionType();
89038903
}
89048904
}
@@ -8925,7 +8925,7 @@ public Type GetReflectionAttributeType()
89258925
if (!TypeName.FullName.Contains('`'))
89268926
{
89278927
var newTypeName = new TypeName(Extent,
8928-
string.Format(CultureInfo.InvariantCulture, "{0}Attribute`{1}", TypeName.FullName, GenericArguments.Count));
8928+
string.Create(CultureInfo.InvariantCulture, $"{TypeName.FullName}Attribute`{GenericArguments.Count}"));
89298929
generic = newTypeName.GetReflectionType();
89308930
}
89318931
}

src/System.Management.Automation/engine/parser/token.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1271,7 +1271,7 @@ public override string ToString()
12711271

12721272
internal virtual string ToDebugString(int indent)
12731273
{
1274-
return string.Format(CultureInfo.InvariantCulture, "{0}{1}: <{2}>", StringUtil.Padding(indent), _kind, Text);
1274+
return string.Create(CultureInfo.InvariantCulture, $"{StringUtil.Padding(indent)}{_kind}: <{Text}>");
12751275
}
12761276
}
12771277

src/System.Management.Automation/engine/remoting/client/RemoteRunspacePoolInternal.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2033,7 +2033,7 @@ internal static Collection<PSObject> GetRemoteCommands(Guid shellId, WSManConnec
20332033
powerShell.AddCommand("Get-WSManInstance");
20342034

20352035
// Add parameters to enumerate commands.
2036-
string filterStr = string.Format(CultureInfo.InvariantCulture, "ShellId='{0}'", shellId.ToString().ToUpperInvariant());
2036+
string filterStr = string.Create(CultureInfo.InvariantCulture, $"ShellId='{shellId.ToString().ToUpperInvariant()}'");
20372037
powerShell.AddParameter("ResourceURI", @"Shell/Command");
20382038
powerShell.AddParameter("Enumerate", true);
20392039
powerShell.AddParameter("Dialect", "Selector");

src/System.Management.Automation/engine/remoting/commands/NewPSSessionConfigurationFile.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1866,12 +1866,10 @@ internal static string ConfigFragment(string key, string resourceString, string
18661866

18671867
if (isExample)
18681868
{
1869-
return string.Format(CultureInfo.InvariantCulture, "# {0}{1}# {2:19} = {3}{4}{5}",
1870-
resourceString, nl, key, value, nl, nl);
1869+
return string.Format(CultureInfo.InvariantCulture, "# {0}{1}# {2:19} = {3}{4}{5}", resourceString, nl, key, value, nl, nl);
18711870
}
1872-
1873-
return string.Format(CultureInfo.InvariantCulture, "# {0}{1}{2:19} = {3}{4}{5}",
1874-
resourceString, nl, key, value, nl, nl);
1871+
1872+
return string.Format(CultureInfo.InvariantCulture, "# {0}{1}{2:19} = {3}{4}{5}", resourceString, nl, key, value, nl, nl);
18751873
}
18761874

18771875
/// <summary>

src/System.Management.Automation/engine/remoting/common/RunspaceConnectionInfo.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2239,7 +2239,7 @@ internal int StartSSHProcess(
22392239
StringUtil.Format(RemotingErrorIdStrings.KeyFileNotFound, this.KeyFilePath));
22402240
}
22412241

2242-
startInfo.ArgumentList.Add(string.Format(CultureInfo.InvariantCulture, @"-i ""{0}""", this.KeyFilePath));
2242+
startInfo.ArgumentList.Add(string.Create(CultureInfo.InvariantCulture, $@"-i ""{this.KeyFilePath}"""));
22432243
}
22442244
22452245
// pass "-l login_name" command line argument to ssh if UserName is set
@@ -2252,33 +2252,33 @@ internal int StartSSHProcess(
22522252
// convert DOMAIN\user to user@DOMAIN
22532253
var domainName = parts[0];
22542254
var userName = parts[1];
2255-
startInfo.ArgumentList.Add(string.Format(CultureInfo.InvariantCulture, @"-l {0}@{1}", userName, domainName));
2255+
startInfo.ArgumentList.Add(string.Create(CultureInfo.InvariantCulture, $@"-l {userName}@{domainName}"));
22562256
}
22572257
else
22582258
{
2259-
startInfo.ArgumentList.Add(string.Format(CultureInfo.InvariantCulture, @"-l {0}", this.UserName));
2259+
startInfo.ArgumentList.Add(string.Create(CultureInfo.InvariantCulture, $@"-l {this.UserName}"));
22602260
}
22612261
}
22622262

22632263
// pass "-p port" command line argument to ssh if Port is set
22642264
// if Port is not set, then ssh will use Port from ssh_config if defined else 22 by default
22652265
if (this.Port != 0)
22662266
{
2267-
startInfo.ArgumentList.Add(string.Format(CultureInfo.InvariantCulture, @"-p {0}", this.Port));
2267+
startInfo.ArgumentList.Add(string.Create(CultureInfo.InvariantCulture, $@"-p {this.Port}"));
22682268
}
22692269

22702270
// pass "-o option=value" command line argument to ssh if options are provided
22712271
if (this.Options != null)
22722272
{
22732273
foreach (DictionaryEntry pair in this.Options)
22742274
{
2275-
startInfo.ArgumentList.Add(string.Format(CultureInfo.InvariantCulture, @"-o {0}={1}", pair.Key, pair.Value));
2275+
startInfo.ArgumentList.Add(string.Create(CultureInfo.InvariantCulture, $@"-o {pair.Key}={pair.Value}"));
22762276
}
22772277
}
22782278

22792279
// pass "-s destination command" command line arguments to ssh where command is the subsystem to invoke on the destination
22802280
// note that ssh expects IPv6 addresses to not be enclosed in square brackets so trim them if present
2281-
startInfo.ArgumentList.Add(string.Format(CultureInfo.InvariantCulture, @"-s {0} {1}", this.ComputerName.TrimStart('[').TrimEnd(']'), this.Subsystem));
2281+
startInfo.ArgumentList.Add(string.Create(CultureInfo.InvariantCulture, $@"-s {this.ComputerName.TrimStart('[').TrimEnd(']')} {this.Subsystem}"));
22822282

22832283
startInfo.WorkingDirectory = System.IO.Path.GetDirectoryName(filePath);
22842284
startInfo.CreateNoWindow = true;

src/System.Management.Automation/engine/remoting/fanin/BaseTransportManager.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -364,10 +364,7 @@ internal void ProcessRawData(byte[] data,
364364
{
365365
// we dont support this stream..so ignore the data
366366
Dbg.Assert(false,
367-
string.Format(CultureInfo.InvariantCulture, "Data should be from one of the streams : {0} or {1} or {2}",
368-
WSManNativeApi.WSMAN_STREAM_ID_STDIN,
369-
WSManNativeApi.WSMAN_STREAM_ID_STDOUT,
370-
WSManNativeApi.WSMAN_STREAM_ID_PROMPTRESPONSE));
367+
string.Create(CultureInfo.InvariantCulture, $"Data should be from one of the streams : {WSManNativeApi.WSMAN_STREAM_ID_STDIN} or {WSManNativeApi.WSMAN_STREAM_ID_STDOUT} or {WSManNativeApi.WSMAN_STREAM_ID_PROMPTRESPONSE}"));
371368
s_baseTracer.WriteLine("{0} is not a valid stream", stream);
372369
}
373370
// process data

src/System.Management.Automation/engine/remoting/fanin/WSManTransportManager.cs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -925,10 +925,7 @@ internal override void ConnectAsync()
925925
{
926926
// WSMan expects the data to be in XML format (which is text + xml tags)
927927
// so convert byte[] into base64 encoded format
928-
string base64EncodedDataInXml = string.Format(CultureInfo.InvariantCulture, "<{0} xmlns=\"{1}\">{2}</{0}>",
929-
WSManNativeApi.PS_CONNECT_XML_TAG,
930-
WSManNativeApi.PS_XML_NAMESPACE,
931-
Convert.ToBase64String(additionalData));
928+
string base64EncodedDataInXml = string.Create(CultureInfo.InvariantCulture, $"<{WSManNativeApi.PS_CONNECT_XML_TAG} xmlns=\"{WSManNativeApi.PS_XML_NAMESPACE}\">{Convert.ToBase64String(additionalData)}</{WSManNativeApi.PS_CONNECT_XML_TAG}>");
932929
_openContent = new WSManNativeApi.WSManData_ManToUn(base64EncodedDataInXml);
933930
}
934931

@@ -1096,10 +1093,7 @@ public override void CreateAsync()
10961093
{
10971094
// WSMan expects the data to be in XML format (which is text + xml tags)
10981095
// so convert byte[] into base64 encoded format
1099-
string base64EncodedDataInXml = string.Format(CultureInfo.InvariantCulture, "<{0} xmlns=\"{1}\">{2}</{0}>",
1100-
WSManNativeApi.PS_CREATION_XML_TAG,
1101-
WSManNativeApi.PS_XML_NAMESPACE,
1102-
Convert.ToBase64String(additionalData));
1096+
string base64EncodedDataInXml = string.Create(CultureInfo.InvariantCulture, $"<{WSManNativeApi.PS_CREATION_XML_TAG} xmlns=\"{WSManNativeApi.PS_XML_NAMESPACE}\">{Convert.ToBase64String(additionalData)}</{WSManNativeApi.PS_CREATION_XML_TAG}>");
11031097
_openContent = new WSManNativeApi.WSManData_ManToUn(base64EncodedDataInXml);
11041098
}
11051099
}

0 commit comments

Comments
 (0)