From f9033582b75c82d1109063b5ffbf0b0c14f1e0a1 Mon Sep 17 00:00:00 2001 From: Marek Safar Date: Tue, 4 Jan 2011 22:31:34 +0000 Subject: [PATCH] Set build-in types modifiers --- mcs/errors/cs0030-11.cs | 15 +++++++++++++++ mcs/mcs/import.cs | 2 +- mcs/mcs/typespec.cs | 7 +++---- 3 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 mcs/errors/cs0030-11.cs diff --git a/mcs/errors/cs0030-11.cs b/mcs/errors/cs0030-11.cs new file mode 100644 index 00000000000..4a8d1fd5527 --- /dev/null +++ b/mcs/errors/cs0030-11.cs @@ -0,0 +1,15 @@ +// CS0030: Cannot convert type `string' to `IA' +// Line: 13 + +interface IA +{ +} + +class MainClass +{ + public static void Main () + { + string s = "s"; + IA i = (IA) s; + } +} diff --git a/mcs/mcs/import.cs b/mcs/mcs/import.cs index 33c87732d8a..23835c98b1a 100644 --- a/mcs/mcs/import.cs +++ b/mcs/mcs/import.cs @@ -790,7 +790,7 @@ namespace Mono.CSharp } else if (buildin_types.TryGetValue (type, out pt)) { spec = pt; - pt.SetDefinition (definition, type); + pt.SetDefinition (definition, type, mod); } if (spec == null) diff --git a/mcs/mcs/typespec.cs b/mcs/mcs/typespec.cs index 67fc8b825bf..33cc5b5e737 100644 --- a/mcs/mcs/typespec.cs +++ b/mcs/mcs/typespec.cs @@ -497,9 +497,6 @@ namespace Mono.CSharp public BuildinTypeSpec (MemberKind kind, string ns, string name, Type buildinKind) : base (kind, null, null, null, Modifiers.PUBLIC) { - if (kind == MemberKind.Struct) - modifiers |= Modifiers.SEALED; - this.type = buildinKind; this.ns = ns; this.name = name; @@ -573,10 +570,11 @@ namespace Mono.CSharp return FullName; } - public void SetDefinition (ITypeDefinition td, MetaType type) + public void SetDefinition (ITypeDefinition td, MetaType type, Modifiers mod) { this.definition = td; this.info = type; + this.modifiers |= (mod & ~Modifiers.AccessibilityMask); } public void SetDefinition (TypeSpec ts) @@ -585,6 +583,7 @@ namespace Mono.CSharp this.info = ts.GetMetaInfo (); this.BaseType = ts.BaseType; this.Interfaces = ts.Interfaces; + this.modifiers = ts.Modifiers; } } -- 2.25.1