diff --git a/CS2JLibrary/NetFramework/System/Boolean.xml b/CS2JLibrary/NetFramework/System/Boolean.xml index bcc9148..45ecdf2 100644 --- a/CS2JLibrary/NetFramework/System/Boolean.xml +++ b/CS2JLibrary/NetFramework/System/Boolean.xml @@ -7,7 +7,7 @@ Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com) --> - + boolean Boolean diff --git a/CS2JLibrary/NetFramework/System/Byte.xml b/CS2JLibrary/NetFramework/System/Byte.xml index a3629ff..f0a080f 100644 --- a/CS2JLibrary/NetFramework/System/Byte.xml +++ b/CS2JLibrary/NetFramework/System/Byte.xml @@ -7,7 +7,7 @@ Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com) --> - + byte Byte diff --git a/CS2JLibrary/NetFramework/System/Char.xml b/CS2JLibrary/NetFramework/System/Char.xml index 8a8ff05..7edd396 100644 --- a/CS2JLibrary/NetFramework/System/Char.xml +++ b/CS2JLibrary/NetFramework/System/Char.xml @@ -7,7 +7,7 @@ Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com) --> - + char Character diff --git a/CS2JLibrary/NetFramework/System/Decimal.xml b/CS2JLibrary/NetFramework/System/Decimal.xml index b53af71..8351076 100644 --- a/CS2JLibrary/NetFramework/System/Decimal.xml +++ b/CS2JLibrary/NetFramework/System/Decimal.xml @@ -7,7 +7,7 @@ Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com) --> - + double Double diff --git a/CS2JLibrary/NetFramework/System/Double.xml b/CS2JLibrary/NetFramework/System/Double.xml index 3f81638..adc38bc 100644 --- a/CS2JLibrary/NetFramework/System/Double.xml +++ b/CS2JLibrary/NetFramework/System/Double.xml @@ -7,7 +7,7 @@ Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com) --> - + double Double diff --git a/CS2JLibrary/NetFramework/System/Int16.xml b/CS2JLibrary/NetFramework/System/Int16.xml index 7f08e79..4ddc766 100644 --- a/CS2JLibrary/NetFramework/System/Int16.xml +++ b/CS2JLibrary/NetFramework/System/Int16.xml @@ -7,7 +7,7 @@ Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com) --> - + short Short diff --git a/CS2JLibrary/NetFramework/System/Int32.xml b/CS2JLibrary/NetFramework/System/Int32.xml index 7262e25..143821e 100644 --- a/CS2JLibrary/NetFramework/System/Int32.xml +++ b/CS2JLibrary/NetFramework/System/Int32.xml @@ -7,7 +7,7 @@ Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com) --> - + int Integer diff --git a/CS2JLibrary/NetFramework/System/Int64.xml b/CS2JLibrary/NetFramework/System/Int64.xml index e534378..ef6fc8f 100644 --- a/CS2JLibrary/NetFramework/System/Int64.xml +++ b/CS2JLibrary/NetFramework/System/Int64.xml @@ -7,7 +7,7 @@ Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com) --> - + long Long diff --git a/CS2JLibrary/NetFramework/System/SByte.xml b/CS2JLibrary/NetFramework/System/SByte.xml index d154b60..c3a5b63 100644 --- a/CS2JLibrary/NetFramework/System/SByte.xml +++ b/CS2JLibrary/NetFramework/System/SByte.xml @@ -7,7 +7,7 @@ Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com) --> - + byte Byte diff --git a/CS2JLibrary/NetFramework/System/Single.xml b/CS2JLibrary/NetFramework/System/Single.xml index 4711e32..ab528b5 100644 --- a/CS2JLibrary/NetFramework/System/Single.xml +++ b/CS2JLibrary/NetFramework/System/Single.xml @@ -7,7 +7,7 @@ Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com) --> - + float Float diff --git a/CS2JLibrary/NetFramework/System/UInt32.xml b/CS2JLibrary/NetFramework/System/UInt32.xml index e23aeb8..ed3609f 100644 --- a/CS2JLibrary/NetFramework/System/UInt32.xml +++ b/CS2JLibrary/NetFramework/System/UInt32.xml @@ -7,7 +7,7 @@ Copyright 2010,2011 Kevin Glynn (kevin.glynn@twigletsoftware.com) --> - + long Long diff --git a/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTemplate/TranslationTemplate.cs b/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTemplate/TranslationTemplate.cs index 22ec402..6828cca 100644 --- a/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTemplate/TranslationTemplate.cs +++ b/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTemplate/TranslationTemplate.cs @@ -1998,12 +1998,18 @@ namespace Twiglet.CS2J.Translator.TypeRep // True if we have a separate representation for boxed and unboxed versions // (true for primitive types like int) - [XmlIgnore] + private bool hasBoxedRep = false; + [XmlAttribute("has_boxed_rep")] + [System.ComponentModel.DefaultValueAttribute(false)] public bool HasBoxedRep { get { - return Java != BoxedJava; + return hasBoxedRep; + } + set + { + hasBoxedRep = value; } } @@ -2132,6 +2138,7 @@ namespace Twiglet.CS2J.Translator.TypeRep IsUnboxedType = copyFrom.IsUnboxedType; Variant = copyFrom.Variant; BoxedJava = copyFrom.BoxedJava; + HasBoxedRep = copyFrom.HasBoxedRep; } protected TypeRepTemplate(string tName, string[] tParams, string[] usePath, AliasRepTemplate[] aliases, string[] imports, string javaTemplate) @@ -2212,6 +2219,7 @@ namespace Twiglet.CS2J.Translator.TypeRep { InstantiatedTypes[i] = args[TypeParams[i]]; } + BoxedJava = TemplateUtilities.SubstituteInType(BoxedJava,args); base.Apply(args); } diff --git a/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/NetMaker.g b/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/NetMaker.g index 76d8f44..1f38d92 100644 --- a/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/NetMaker.g +++ b/CSharpTranslator/antlr3/src/CS2JTranslator/CS2JTransform/NetMaker.g @@ -1815,7 +1815,7 @@ type returns [TypeRepTemplate dotNetType, List argTrees, CommonTree $boxedTree = $magicBoxedType.tree; } } - -> { $PrimitiveRep::primitiveTypeAsObject && !hasRank && !String.IsNullOrEmpty($dotNetType.BoxedJava) }? ^(TYPE[$t.token, "TYPE"] IDENTIFIER[$t.token,$dotNetType.BoxedJava] '*'* '?'?) + -> { $PrimitiveRep::primitiveTypeAsObject && !hasRank && $dotNetType.HasBoxedRep && !String.IsNullOrEmpty($dotNetType.BoxedJava) }? ^(TYPE[$t.token, "TYPE"] IDENTIFIER[$t.token,$dotNetType.BoxedJava] '*'* '?'?) -> ^(TYPE[$t.token, "TYPE"] predefined_type? type_name? 'void'? rank_specifiers? '*'* '?'?) ;