From 35696efd1c171ca6b0e6c7f7a8bb2ebc0c7cbc3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Pl=C3=BCmicke?= Date: Mon, 5 Nov 2018 14:33:44 +0100 Subject: [PATCH] modified: ../../src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java Alle Basistype bei Literalen hinzugefuegt. --- .../typeinference/typeAlgo/TYPEStmt.java | 22 +++++++++++++++++++ test/bytecode/javFiles/Matrix.jav | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java b/src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java index 16265b32..609600cd 100644 --- a/src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java +++ b/src/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java @@ -372,6 +372,18 @@ public class TYPEStmt implements StatementVisitor{ //PL 2018-06-23 Sie haben einen Typ. Der muesste hier eingefuegt werden //wie hier fuer double gezeigt. Im Momment auskommentiert, weil zu wenige Literaltypen //funktionieren + if (literal.value instanceof Short) { + constraintsSet.addUndConstraint(new Pair(literal.getType(), shortt, PairOperator.EQUALSDOT)); + return; + } + if (literal.value instanceof Byte) { + constraintsSet.addUndConstraint(new Pair(literal.getType(), bytee, PairOperator.EQUALSDOT)); + return; + } + if (literal.value instanceof Float) { + constraintsSet.addUndConstraint(new Pair(literal.getType(), floatt, PairOperator.EQUALSDOT)); + return; + } if (literal.value instanceof Double) { constraintsSet.addUndConstraint(new Pair(literal.getType(), doublee, PairOperator.EQUALSDOT)); return; @@ -403,6 +415,16 @@ public class TYPEStmt implements StatementVisitor{ constraint.add(new Pair(literal.getType(), floatt, PairOperator.EQUALSDOT)); oderConstraints.add(constraint); } + if (clNames.stream().filter(x -> x.toString().equals("java.lang.Short")).findAny().isPresent()) { + constraint = new Constraint(); + constraint.add(new Pair(literal.getType(), shortt, PairOperator.EQUALSDOT)); + oderConstraints.add(constraint); + } + if (clNames.stream().filter(x -> x.toString().equals("java.lang.Byte")).findAny().isPresent()) { + constraint = new Constraint(); + constraint.add(new Pair(literal.getType(), bytee, PairOperator.EQUALSDOT)); + oderConstraints.add(constraint); + } constraintsSet.addOderConstraint(oderConstraints); // */ return; diff --git a/test/bytecode/javFiles/Matrix.jav b/test/bytecode/javFiles/Matrix.jav index bfe523b6..48f6eda2 100644 --- a/test/bytecode/javFiles/Matrix.jav +++ b/test/bytecode/javFiles/Matrix.jav @@ -1,6 +1,6 @@ import java.util.Vector; import java.lang.Integer; -import java.lang.Float; +//import java.lang.Float; //import java.lang.Byte; import java.lang.Boolean;