From 098cafac00c3bdd2396faa96938b8c295be56561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrico=20Schr=C3=B6dter?= Date: Thu, 31 Mar 2016 08:52:23 +0200 Subject: [PATCH] - IdentityFieldTest erstellt --- .../syntaxtree/type/GenericTypeVar.java | 2 +- src/de/dhbwstuttgart/syntaxtree/type/RefType.java | 6 ++---- test/bytecode/IdentityField.jav | 3 +++ test/bytecode/IdentityFieldTest.java | 14 ++++++++++++++ 4 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 test/bytecode/IdentityField.jav create mode 100644 test/bytecode/IdentityFieldTest.java diff --git a/src/de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.java b/src/de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.java index d4e4d52a..0c7a4468 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.java @@ -235,7 +235,7 @@ public class GenericTypeVar extends ObjectType @Override public org.apache.commons.bcel6.generic.Type getBytecodeType(ClassGenerator cg, TypeinferenceResultSet rs) { // TODO Bytecode - return null; + return org.apache.commons.bcel6.generic.Type.getType(getSignatureType(null));// new org.apache.commons.bcel6.generic.ObjectType("Object"); } diff --git a/src/de/dhbwstuttgart/syntaxtree/type/RefType.java b/src/de/dhbwstuttgart/syntaxtree/type/RefType.java index 0e8199e7..aded666a 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/RefType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/RefType.java @@ -877,11 +877,9 @@ public class RefType extends ObjectType implements IMatchable @Override public String getDescription(ClassGenerator cg, TypeinferenceResultSet rs) { - return getBytecodeSignature(cg, rs); + String signature = getBytecodeSignature(cg, rs); + return signature.substring(1, signature.length()-1); } - - - } // ino.end diff --git a/test/bytecode/IdentityField.jav b/test/bytecode/IdentityField.jav new file mode 100644 index 00000000..29781431 --- /dev/null +++ b/test/bytecode/IdentityField.jav @@ -0,0 +1,3 @@ +class Id { + Fun1 op = (x) -> x; +} \ No newline at end of file diff --git a/test/bytecode/IdentityFieldTest.java b/test/bytecode/IdentityFieldTest.java new file mode 100644 index 00000000..e50b001e --- /dev/null +++ b/test/bytecode/IdentityFieldTest.java @@ -0,0 +1,14 @@ +package bytecode; + +import org.junit.Test; + +public class IdentityFieldTest { + public final static String rootDirectory = System.getProperty("user.dir")+"/test/bytecode/"; + public final static String testFile = "IdentityField.jav"; + public final static String outputFile = "IdentityField.class"; + + @Test + public void test() { + SingleClassTester.compileToBytecode(rootDirectory+testFile, rootDirectory+outputFile); + } +}