Changeset 112

Show
Ignore:
Timestamp:
10/26/07 12:33:03 (4 years ago)
Author:
edrishn
Message:

Enhancement: Handling unsigned types correctly

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Source/Framework/ExpressionTypeResolver.cs

    r103 r112  
    319319                                                javaType = "java.lang.String"; 
    320320                                        else 
     321                                        { 
     322                                                if (csharpType.ToLower().StartsWith("u")) 
     323                                                        csharpType = csharpType.Remove(0, 1); 
    321324                                                javaType = (string) TypeReference.PrimitiveTypesJava[csharpType]; 
     325                                        } 
    322326                                        TypeReference typeReference = new TypeReference(javaType, javaType); 
    323327                                        typeReference.Parent = expression.Parent; 
  • trunk/Source/UnitTests/Framework/ExpressionTypeResolverTest.cs

    r103 r112  
    560560                        Assert.AreEqual(TypeReference.Null, type); 
    561561                } 
     562 
     563                [Test] 
     564                public void Unsigned() 
     565                { 
     566                        string program = TestUtil.StatementParse("long l; l = 0xefffdfffffffffffL;"); 
     567                        CompilationUnit cu = TestUtil.ParseProgram(program); 
     568                        AssignmentExpression ass = (AssignmentExpression) TestUtil.GetStatementNodeOf(cu, 1); 
     569                        PrimitiveExpression nl = (PrimitiveExpression) ass.Right; 
     570                        TypeReference type = GetType(nl); 
     571                        Assert.AreEqual("java.lang.Long", type.Type); 
     572                } 
    562573        } 
    563574}