< prev index next >

test/testlibrary/jittester/src/jdk/test/lib/jittester/factories/FunctionFactory.java

Print this page

        

@@ -35,11 +35,11 @@
 import jdk.test.lib.jittester.functions.Function;
 import jdk.test.lib.jittester.functions.FunctionInfo;
 import jdk.test.lib.jittester.types.TypeKlass;
 import jdk.test.lib.jittester.utils.PseudoRandom;
 
-class FunctionFactory extends SafeFactory {
+class FunctionFactory extends SafeFactory<Function> {
     private final FunctionInfo functionInfo;
     private final int operatorLimit;
     private final long complexityLimit;
     private final boolean exceptionSafe;
     private final TypeKlass ownerClass;

@@ -53,11 +53,11 @@
         this.functionInfo.type = resultType;
         this.exceptionSafe = exceptionSafe;
     }
 
     @Override
-    protected IRNode sproduce() throws ProductionFailedException {
+    protected Function sproduce() throws ProductionFailedException {
         // Currently no function is exception-safe
         if (exceptionSafe) {
             throw new ProductionFailedException();
         }
         ArrayList<Symbol> allFunctions;

@@ -70,11 +70,11 @@
             PseudoRandom.shuffle(allFunctions);
             Collection<TypeKlass> klassHierarchy = ownerClass.getAllParents();
             for (Symbol function : allFunctions) {
                 FunctionInfo functionInfo = (FunctionInfo) function;
                 // Don't try to construct abstract classes.
-                if (functionInfo.isConstructor() && functionInfo.klass.isAbstract()) {
+                if (functionInfo.isConstructor() && functionInfo.owner.isAbstract()) {
                     continue;
                 }
                 // We don't call methods from the same class which are not final, because if we
                 // do this may produce an infinite recursion. Simple example:
                 // class  A

@@ -92,11 +92,11 @@
                 // Also we introduce a special flag NONRECURSIVE to mark functions that
                 // are not overrided. We may also call such functions.
 
                 // If it's a local call.. or it's a call using some variable to some object of some type in our hierarchy
                 boolean inHierarchy = false;
-                if (ownerClass.equals(functionInfo.klass) || (inHierarchy = klassHierarchy.contains(functionInfo.klass))) {
+                if (ownerClass.equals(functionInfo.owner) || (inHierarchy = klassHierarchy.contains(functionInfo.owner))) {
                     if ((functionInfo.flags & FunctionInfo.FINAL) == 0 && (functionInfo.flags & FunctionInfo.STATIC) == 0
                             && (functionInfo.flags & FunctionInfo.NONRECURSIVE) == 0) {
                         continue;
                     }
                     if (inHierarchy && (functionInfo.flags & FunctionInfo.PRIVATE) > 0) {

@@ -119,11 +119,11 @@
                             // For example the following can be done:
                             // Scan all the hieirachy where the class is declared.
                             // If there are function with a same name and same number of args,
                             // then disable usage of foldable expressions in the args.
                             boolean noconsts = false;
-                            Collection<Symbol> allFuncsInKlass = SymbolTable.getAllCombined(functionInfo.klass,
+                            Collection<Symbol> allFuncsInKlass = SymbolTable.getAllCombined(functionInfo.owner,
                                     FunctionInfo.class);
                             for (Symbol s2 : allFuncsInKlass) {
                                 FunctionInfo i2 = (FunctionInfo) function;
                                 if (!i2.equals(functionInfo) && i2.name.equals(functionInfo.name)
                                         && i2.argTypes.size() == functionInfo.argTypes.size()) {
< prev index next >