public STypeIR getFieldType(List<SClassDeclIR> classes, String moduleName, String fieldName) { SClassDeclIR classDecl = assistantManager.getDeclAssistant().findClass(classes, moduleName); return getFieldType(classDecl, fieldName, classes); }
public Set<String> getSuperClasses(SClassDeclIR classDecl, List<SClassDeclIR> classes) { if (classDecl.getSuperNames().isEmpty()) { return new HashSet<>(); } else { Set<String> superClasses = new HashSet<>(); for (ATokenNameIR s : classDecl.getSuperNames()) { superClasses.add(s.getName()); SClassDeclIR clazz = findClass(classes, s.getName()); if (clazz != null) { superClasses.addAll(getSuperClasses(clazz, classes)); } } return superClasses; } }
public <T extends SDeclIR> List<T> getAllDecls(SClassDeclIR classDecl, List<SClassDeclIR> classes, DeclStrategy<T> strategy) { List<T> allDecls = new LinkedList<T>(); allDecls.addAll(strategy.getDecls(classDecl)); Set<String> allSuperNames = getSuperClasses(classDecl, classes); for (String s : allSuperNames) { SClassDeclIR superClassDecl = findClass(classes, s); if (superClassDecl != null) { for (T superDecl : strategy.getDecls(superClassDecl)) { if (isInherited(strategy.getAccess(superDecl))) { allDecls.add(superDecl); } } } } return allDecls; }
public boolean isTest(ADefaultClassDeclIR node, List<SClassDeclIR> classes) { if(node == null || node.getSuperNames().isEmpty()) { return false; } for(ATokenNameIR n : node.getSuperNames()) { if(n.getName().equals(IRConstants.TEST_CASE)) { return true; } SClassDeclIR clazz = findClass(classes, n.getName()); if(clazz instanceof ADefaultClassDeclIR && isTest((ADefaultClassDeclIR) clazz, classes)) { return true; } } return false; }
public ARecordDeclIR findRecord(List<SClassDeclIR> classes, ARecordTypeIR recordType) { SClassDeclIR definingClass = findClass(classes, recordType.getName().getDefiningClass()); ARecordDeclIR record = findRecord(definingClass, recordType.getName().getName()); return record; }
throws org.overture.codegen.ir.analysis.AnalysisException SClassDeclIR classDecl = assistantManager.getDeclAssistant().findClass(info.getClasses(), fieldModule);
public STypeIR getFieldExpType(IRInfo info, String fieldName, String fieldModule, SObjectDesignatorIR obj, INode parent) throws AnalysisException, org.overture.codegen.ir.analysis.AnalysisException { if (parent instanceof AApplyObjectDesignatorIR) { AApplyObjectDesignatorIR apply = (AApplyObjectDesignatorIR) parent; LinkedList<SExpIR> args = apply.getArgs(); if (fieldModule != null) { // It is a class SClassDeclIR clazz = info.getDeclAssistant().findClass(info.getClasses(), fieldModule); AFieldDeclIR field = info.getDeclAssistant().getFieldDecl(clazz, fieldModule); if (field != null) { return field.getType().clone(); } else { // It must be a method return info.getTypeAssistant().getMethodType(info, fieldModule, fieldName, args); } } } return getFieldType(info, fieldName, fieldModule, obj); }
private void tcTraceTest(TypePredDecorator assertTr) { for (TcExpInfo currentInfo : tcExpInfo) { AbstractTypeInfo typeInfo = assertTr.getTypePredUtil().findTypeInfo(currentInfo.getFormalParamType()); String enclosingClass = currentInfo.getTraceEnclosingClass(); String javaRootPackage = getJavaSettings().getJavaRootPackage(); SClassDeclIR clazz = getJavaGen().getInfo().getDeclAssistant().findClass(getJavaGen().getInfo().getClasses(), enclosingClass); NameGen nameGen = new NameGen(clazz); String expRef = currentInfo.getExpRef(); String checkStr = typeInfo.consCheckExp(enclosingClass, javaRootPackage, expRef, nameGen); currentInfo.getTypeCheck().setMetaData(annotator.consMetaData("//@ " + JML_ASSERT_ANNOTATION + " " + checkStr + ";")); } }
SClassDeclIR clazz = dAssist.findClass(getInfo().getClasses(), invokedModule);
String recordName = recordType.getName().getName(); SClassDeclIR classDecl = transAssistant.getInfo().getAssistantManager().getDeclAssistant().findClass(transAssistant.getInfo().getClasses(), definingClassName);