Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1137,7 +1137,7 @@ private Collection<CommandParameterInternal> BindParameters(uint parameterSets,
null,
null,
ParameterBinderStrings.ParameterAlreadyBound,
"ParameterAlreadyBound");
nameof(ParameterBinderStrings.ParameterAlreadyBound));

// Multiple values assigned to the same parameter.
// Not caused by default parameter binding
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@ private void AddDuplicateParameterBindingException(CommandParameterAst duplicate
null,
null,
ParameterBinderStrings.ParameterAlreadyBound,
"ParameterAlreadyBound");
nameof(ParameterBinderStrings.ParameterAlreadyBound));
// if the duplicated Parameter Name appears more than twice, we will ignore as we already have similar bindingException.
if (!BindingExceptions.ContainsKey(duplicateParameter.ParameterName))
{
Expand Down
2 changes: 1 addition & 1 deletion src/System.Management.Automation/engine/CoreAdapter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3667,7 +3667,7 @@ protected override void PropertySet(PSProperty property, object setValue, bool c

if (adapterData.readOnly)
{
throw new SetValueException("ReadOnlyProperty",
throw new SetValueException(nameof(ExtendedTypeSystem.ReadOnlyProperty),
null,
ExtendedTypeSystem.ReadOnlyProperty,
adapterData.member.Name);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -443,7 +443,7 @@ internal virtual bool BindParameter(
null,
null,
ParameterBinderStrings.ParameterAlreadyBound,
"ParameterAlreadyBound");
nameof(ParameterBinderStrings.ParameterAlreadyBound));

throw bindingException;
}
Expand Down
110 changes: 86 additions & 24 deletions src/System.Management.Automation/engine/parser/PSType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,10 @@ private static bool TryConvertArg(object arg, Type type, out object result, Pars
}
if (!LanguagePrimitives.TryConvertTo(arg, type, out result))
{
parser.ReportError(errorExtent, () => ParserStrings.CannotConvertValue, ToStringCodeMethods.Type(type));
parser.ReportError(errorExtent,
nameof(ParserStrings.CannotConvertValue),
ParserStrings.CannotConvertValue,
ToStringCodeMethods.Type(type));
return false;
}
return true;
Expand Down Expand Up @@ -307,29 +310,41 @@ private Type GetBaseTypes(Parser parser, TypeDefinitionAst typeDefinitionAst, ou

if (firstBaseTypeAst.TypeName.IsArray)
{
parser.ReportError(firstBaseTypeAst.Extent, () => ParserStrings.SubtypeArray, firstBaseTypeAst.TypeName.FullName);
parser.ReportError(firstBaseTypeAst.Extent,
nameof(ParserStrings.SubtypeArray),
ParserStrings.SubtypeArray,
firstBaseTypeAst.TypeName.FullName);
// fall to the default base type
}
else
{
baseClass = firstBaseTypeAst.TypeName.GetReflectionType();
if (baseClass == null)
{
parser.ReportError(firstBaseTypeAst.Extent, () => ParserStrings.TypeNotFound, firstBaseTypeAst.TypeName.FullName);
parser.ReportError(firstBaseTypeAst.Extent,
nameof(ParserStrings.TypeNotFound),
ParserStrings.TypeNotFound,
firstBaseTypeAst.TypeName.FullName);
// fall to the default base type
}
else

{
if (baseClass.GetTypeInfo().IsSealed)
{
parser.ReportError(firstBaseTypeAst.Extent, () => ParserStrings.SealedBaseClass, baseClass.Name);
parser.ReportError(firstBaseTypeAst.Extent,
nameof(ParserStrings.SealedBaseClass),
ParserStrings.SealedBaseClass,
baseClass.Name);
// ignore base type if it's sealed.
baseClass = null;
}
else if (baseClass.GetTypeInfo().IsGenericType && !baseClass.IsConstructedGenericType)
{
parser.ReportError(firstBaseTypeAst.Extent, () => ParserStrings.SubtypeUnclosedGeneric, baseClass.Name);
parser.ReportError(firstBaseTypeAst.Extent,
nameof(ParserStrings.SubtypeUnclosedGeneric),
ParserStrings.SubtypeUnclosedGeneric,
baseClass.Name);
// ignore base type, we cannot inherit from unclosed generic.
baseClass = null;
}
Expand Down Expand Up @@ -361,7 +376,10 @@ private Type GetBaseTypes(Parser parser, TypeDefinitionAst typeDefinitionAst, ou
{
if (baseTypeAsts[i].TypeName.IsArray)
{
parser.ReportError(baseTypeAsts[i].Extent, () => ParserStrings.SubtypeArray, baseTypeAsts[i].TypeName.FullName);
parser.ReportError(baseTypeAsts[i].Extent,
nameof(ParserStrings.SubtypeArray),
ParserStrings.SubtypeArray,
baseTypeAsts[i].TypeName.FullName);
this.HasFatalErrors = true;
}
}
Expand All @@ -370,14 +388,20 @@ private Type GetBaseTypes(Parser parser, TypeDefinitionAst typeDefinitionAst, ou
{
if (baseTypeAsts[i].TypeName.IsArray)
{
parser.ReportError(baseTypeAsts[i].Extent, () => ParserStrings.SubtypeArray, baseTypeAsts[i].TypeName.FullName);
parser.ReportError(baseTypeAsts[i].Extent,
nameof(ParserStrings.SubtypeArray),
ParserStrings.SubtypeArray,
baseTypeAsts[i].TypeName.FullName);
}
else
{
Type interfaceType = baseTypeAsts[i].TypeName.GetReflectionType();
if (interfaceType == null)
{
parser.ReportError(baseTypeAsts[i].Extent, () => ParserStrings.TypeNotFound, baseTypeAsts[i].TypeName.FullName);
parser.ReportError(baseTypeAsts[i].Extent,
nameof(ParserStrings.TypeNotFound),
ParserStrings.TypeNotFound,
baseTypeAsts[i].TypeName.FullName);
}
else
{
Expand All @@ -387,7 +411,10 @@ private Type GetBaseTypes(Parser parser, TypeDefinitionAst typeDefinitionAst, ou
}
else
{
parser.ReportError(baseTypeAsts[i].Extent, () => ParserStrings.InterfaceNameExpected, interfaceType.Name);
parser.ReportError(baseTypeAsts[i].Extent,
nameof(ParserStrings.InterfaceNameExpected),
ParserStrings.InterfaceNameExpected,
interfaceType.Name);
}
}
}
Expand Down Expand Up @@ -494,7 +521,10 @@ public void DefineMembers()
{
if (!instanceCtors.Any())
{
_parser.ReportError(_typeDefinitionAst.Extent, () => ParserStrings.BaseClassNoDefaultCtor, _typeBuilder.BaseType.Name);
_parser.ReportError(_typeDefinitionAst.Extent,
nameof(ParserStrings.BaseClassNoDefaultCtor),
ParserStrings.BaseClassNoDefaultCtor,
_typeBuilder.BaseType.Name);
this.HasFatalErrors = true;
}
}
Expand All @@ -504,7 +534,10 @@ private void DefineProperty(PropertyMemberAst propertyMemberAst)
{
if (_definedProperties.ContainsKey(propertyMemberAst.Name))
{
_parser.ReportError(propertyMemberAst.Extent, () => ParserStrings.MemberAlreadyDefined, propertyMemberAst.Name);
_parser.ReportError(propertyMemberAst.Extent,
nameof(ParserStrings.MemberAlreadyDefined),
ParserStrings.MemberAlreadyDefined,
propertyMemberAst.Name);
return;
}

Expand Down Expand Up @@ -658,7 +691,9 @@ private bool CheckForDuplicateOverload(FunctionMemberAst functionMemberAst, Type
!functionMemberAst.IsConstructor)
{
_parser.ReportError(functionMemberAst.NameExtent ?? functionMemberAst.Extent,
() => ParserStrings.MemberAlreadyDefined, functionMemberAst.Name);
nameof(ParserStrings.MemberAlreadyDefined),
ParserStrings.MemberAlreadyDefined,
functionMemberAst.Name);
return true;
}
}
Expand Down Expand Up @@ -687,12 +722,17 @@ private Type[] GetParameterTypes(FunctionMemberAst functionMemberAst)
: typeof(object);
if (paramType == null)
{
_parser.ReportError(typeConstraint.Extent, () => ParserStrings.TypeNotFound, typeConstraint.TypeName.FullName);
_parser.ReportError(typeConstraint.Extent,
nameof(ParserStrings.TypeNotFound),
ParserStrings.TypeNotFound,
typeConstraint.TypeName.FullName);
anyErrors = true;
}
else if (paramType == typeof(void) || paramType.GetTypeInfo().IsGenericTypeDefinition)
{
_parser.ReportError(typeConstraint.Extent, () => ParserStrings.TypeNotAllowedForParameter,
_parser.ReportError(typeConstraint.Extent,
nameof(ParserStrings.TypeNotAllowedForParameter),
ParserStrings.TypeNotAllowedForParameter,
typeConstraint.TypeName.FullName);
anyErrors = true;
}
Expand Down Expand Up @@ -735,7 +775,10 @@ private void DefineMethod(FunctionMemberAst functionMemberAst)
var parameters = functionMemberAst.Parameters;
if (parameters.Count > 0)
{
_parser.ReportError(Parser.ExtentOf(parameters.First(), parameters.Last()), () => ParserStrings.StaticConstructorCantHaveParameters);
IScriptExtent errorExtent = Parser.ExtentOf(parameters.First(), parameters.Last());
_parser.ReportError(errorExtent,
nameof(ParserStrings.StaticConstructorCantHaveParameters),
ParserStrings.StaticConstructorCantHaveParameters);
return;
}
methodAttributes |= Reflection.MethodAttributes.Static;
Expand Down Expand Up @@ -763,7 +806,10 @@ private void DefineMethod(FunctionMemberAst functionMemberAst)
var returnType = functionMemberAst.GetReturnType();
if (returnType == null)
{
_parser.ReportError(functionMemberAst.ReturnType.Extent, () => ParserStrings.TypeNotFound, functionMemberAst.ReturnType.TypeName.FullName);
_parser.ReportError(functionMemberAst.ReturnType.Extent,
nameof(ParserStrings.TypeNotFound),
ParserStrings.TypeNotFound,
functionMemberAst.ReturnType.TypeName.FullName);
return;
}
var method = _typeBuilder.DefineMethod(functionMemberAst.Name, attributes, returnType, parameterTypes);
Expand Down Expand Up @@ -1019,7 +1065,9 @@ internal static List<DefineEnumHelper> Sort(List<DefineEnumHelper> defineEnumHel
{
if (!result.Contains(helper))
{
parser.ReportError(helper._enumDefinitionAst.Extent, () => ParserStrings.CycleInEnumInitializers);
parser.ReportError(helper._enumDefinitionAst.Extent,
nameof(ParserStrings.CycleInEnumInitializers),
ParserStrings.CycleInEnumInitializers);
}
}
}
Expand Down Expand Up @@ -1057,29 +1105,40 @@ internal void DefineEnum()
if (constValue != null &&
LanguagePrimitives.IsNumeric(LanguagePrimitives.GetTypeCode(constValue.GetType())))
{
_parser.ReportError(enumerator.InitialValue.Extent, () => ParserStrings.EnumeratorValueTooLarge);
_parser.ReportError(enumerator.InitialValue.Extent,
nameof(ParserStrings.EnumeratorValueTooLarge),
ParserStrings.EnumeratorValueTooLarge);
}
else
{
_parser.ReportError(enumerator.InitialValue.Extent, () => ParserStrings.CannotConvertValue,
_parser.ReportError(enumerator.InitialValue.Extent,
nameof(ParserStrings.CannotConvertValue),
ParserStrings.CannotConvertValue,
ToStringCodeMethods.Type(typeof(int)));
}
}
}
}
else
{
_parser.ReportError(enumerator.InitialValue.Extent, () => ParserStrings.EnumeratorValueMustBeConstant);
_parser.ReportError(enumerator.InitialValue.Extent,
nameof(ParserStrings.EnumeratorValueMustBeConstant),
ParserStrings.EnumeratorValueMustBeConstant);
}
}
else if (valueTooBig)
{
_parser.ReportError(enumerator.Extent, () => ParserStrings.EnumeratorValueTooLarge);
_parser.ReportError(enumerator.Extent,
nameof(ParserStrings.EnumeratorValueTooLarge),
ParserStrings.EnumeratorValueTooLarge);
}

if (definedEnumerators.Contains(enumerator.Name))
{
_parser.ReportError(enumerator.Extent, () => ParserStrings.MemberAlreadyDefined, enumerator.Name);
_parser.ReportError(enumerator.Extent,
nameof(ParserStrings.MemberAlreadyDefined),
ParserStrings.MemberAlreadyDefined,
enumerator.Name);
}
else
{
Expand Down Expand Up @@ -1204,8 +1263,11 @@ internal static Assembly DefineTypes(Parser parser, Ast rootAst, TypeDefinitionA
//
// Presumably this catch could go away when we will not create Type at parse time.
// Error checking should be moved/added to semantic checks.
parser.ReportError(helper._typeDefinitionAst.Extent, () => ParserStrings.TypeCreationError,
helper._typeBuilder.Name, e.Message);
parser.ReportError(helper._typeDefinitionAst.Extent,
nameof(ParserStrings.TypeCreationError),
ParserStrings.TypeCreationError,
helper._typeBuilder.Name,
e.Message);
}
}

Expand Down
Loading