2004-07-17 Martin Baulig <martin@ximian.com>
authorMartin Baulig <martin@novell.com>
Sat, 17 Jul 2004 16:02:52 +0000 (16:02 -0000)
committerMartin Baulig <martin@novell.com>
Sat, 17 Jul 2004 16:02:52 +0000 (16:02 -0000)
* decl.cs (MemberName.MakeName): Create the "class`1" names here;
use an exclamation mark (!) instead of backticks (`) again.

svn path=/trunk/mcs/; revision=31249

mcs/gmcs/ChangeLog
mcs/gmcs/decl.cs
mcs/gmcs/expression.cs
mcs/gmcs/generic.cs
mcs/gmcs/namespace.cs
mcs/gmcs/typemanager.cs

index 4d69a62827c6c09453f58045e8ebb602a92ced61..8da236cbe9ae25803c360826b94eaaa07d22242e 100755 (executable)
@@ -1,3 +1,8 @@
+2004-07-17  Martin Baulig  <martin@ximian.com>
+
+       * decl.cs (MemberName.MakeName): Create the "class`1" names here;
+       use an exclamation mark (!) instead of backticks (`) again.
+
 2004-07-16  Martin Baulig  <martin@ximian.com>
 
        * iterators.cs: Added generics support.
index 1b4c457122497e29f94447cce56b7a8eca551518..6da5d388bc1d9ebe4ca3fb6fa69be3eaed02a5d0 100755 (executable)
@@ -100,15 +100,19 @@ namespace Mono.CSharp {
                                return full_name;
                }
 
-               public string GetTypeName (bool full)
+               public static string MakeName (string name, int count)
+               {
+                       return name + "!" + count;
+               }
+
+               public string GetTypeName ()
                {
                        string suffix = "";
-                       if (full && (TypeArguments != null))
-                               suffix = "`" + TypeArguments.Count;
                        if (Left != null)
-                               return Left.GetTypeName (full) + "." + Name + suffix;
+                               return Left.GetTypeName () + "." +
+                                       MakeName (Name, TypeArguments.Count);
                        else
-                               return Name + suffix;
+                               return MakeName (Name, TypeArguments.Count);
                }
 
                public Expression GetTypeExpression (Location loc)
@@ -128,7 +132,7 @@ namespace Mono.CSharp {
                public string Basename {
                        get {
                                if (TypeArguments != null)
-                                       return Name + "`" + TypeArguments.Count;
+                                       return MakeName (Name, TypeArguments.Count);
                                else
                                        return Name;
                        }
index e62e2b0eca3addee356dbda88e863ca472e05497..ae83f005f430367dbcf14bbe00090876ba2a84ac 100755 (executable)
@@ -7509,7 +7509,7 @@ namespace Mono.CSharp {
                        member_lookup = MemberLookup (
                                ec, expr_type, expr_type, Identifier, loc);
                        if ((member_lookup == null) && (args != null)) {
-                               string lookup_id = Identifier + "`" + args.Count;
+                               string lookup_id = MemberName.MakeName (Identifier, args.Count);
                                member_lookup = MemberLookup (
                                        ec, expr_type, expr_type, lookup_id, loc);
                        }
@@ -7593,7 +7593,7 @@ namespace Mono.CSharp {
                                        fname = full_expr.Identifier;
 
                                if (args != null)
-                                       fname = fname + "`" + args.Count;
+                                       fname = MemberName.MakeName (fname, args.Count);
 
                                if (full_expr.Expr is SimpleName) {
                                        string full_name = String.Concat (((SimpleName) full_expr.Expr).Name, ".", fname);
@@ -7629,7 +7629,7 @@ namespace Mono.CSharp {
                        Expression member_lookup;
                        string lookup_id;
                        if (args != null)
-                               lookup_id = Identifier + "`" + args.Count;
+                               lookup_id = MemberName.MakeName (Identifier, args.Count);
                        else
                                lookup_id = Identifier;
                        member_lookup = MemberLookupFinal (
@@ -7674,7 +7674,7 @@ namespace Mono.CSharp {
                public override string ToString ()
                {
                        if (args != null)
-                               return expr + "." + Identifier + "`" + args.Count;
+                               return expr + "." + MemberName.MakeName (Identifier, args.Count);
                        else
                                return expr + "." + Identifier;
                }
index 546fab738480bd8cc8e31aa682ea4439e5421518..48d7810f89b25dce92ed89963cd3d38c463b5549 100644 (file)
@@ -531,7 +531,7 @@ namespace Mono.CSharp {
                public ConstructedType (string name, TypeArguments args, Location l)
                {
                        loc = l;
-                       this.name = name + "`" + args.Count;
+                       this.name = MemberName.MakeName (name, args.Count);
                        this.args = args;
 
                        eclass = ExprClass.Type;
index 1bbe39e0c4e007c10e78a64f48742de79746466d..00d77a6e423eb4cb1afedfc21ce5301faf1f4cc9 100755 (executable)
@@ -267,7 +267,7 @@ namespace Mono.CSharp {
                                // this will fail with `using A = Stack<int>'
                                //
                                
-                               string alias = Alias.GetTypeName (true);
+                               string alias = Alias.GetTypeName ();
                                while ((curr_ns != null) && (resolved == null)) {
                                        resolved = curr_ns.Lookup (
                                                null, alias, Alias.CountTypeArguments,
index 9c547cb0aafcb158bed481297e4cd079ba8d908c..49ffb9e0925b1adc624765f6821058cbc78d958c 100755 (executable)
@@ -1179,8 +1179,8 @@ public class TypeManager {
                //
                // Generic types
                //
-               generic_ienumerator_type     = CoreLookupType ("System.Collections.Generic.IEnumerator`1");
-               generic_ienumerable_type     = CoreLookupType ("System.Collections.Generic.IEnumerable`1");
+               generic_ienumerator_type     = CoreLookupType (MemberName.MakeName ("System.Collections.Generic.IEnumerator", 1));
+               generic_ienumerable_type     = CoreLookupType (MemberName.MakeName ("System.Collections.Generic.IEnumerable", 1));
 
 
                //