Changeset 12460


Ignore:
Timestamp:
Mar 14, 2019 11:53:22 AM (9 months ago)
Author:
Zimon Kuhs
Message:

#5745

Changed name lookup of InstExtends to perform a generic lookup if it fails for class declarations and extends.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/dev-zk-1971/Compiler/ModelicaFrontEnd/src/jastadd/instance/InstLookupClasses.jrag

    r12130 r12460  
    445445        if (myInstClass().isRedeclaredNonSimple())
    446446            return myInstClass().lookupInstClassInInstClassRedeclare(name);
    447        
     447
    448448        for (InstImport ii : getInstImports()) {
    449449            InstLookupResult<InstClassDecl> res = ii.lookupInstClassInImport(name);
     
    451451                return res;
    452452        }
    453        
     453
    454454        for (InstClassDecl icd : getInstClassDecls())
    455455            if (icd.matches(name))
    456456                return InstLookupResult.found(icd);
    457    
     457
    458458        return myInstClass().superLookupInstClass(name);
    459459    }
    460460
    461 
    462461    syn lazy InstLookupResult<InstClassDecl> InstExtends.genericLookupInstClassInExtends(String name) {
    463         for (InstClassDecl icd : getInstClassDecls())
    464             if (icd.matches(name))
    465                 return InstLookupResult.found(icd);
    466        
     462        for (InstClassDecl icd : getInstClassDecls()) {
     463            if (icd.matches(name)) {
     464                return InstLookupResult.found(icd);
     465            }
     466        }
     467
    467468        for (InstExtends ie : getInstExtendss()) {
    468469            InstLookupResult<InstClassDecl> res = ie.memberInstClass(name);
    469             if (res.successful())
    470                 return res;
    471         }
    472        
    473         return myInstClass().genericLookupInstClass(name);
     470            if (res.successful()) {
     471                return res;
     472            }
     473        }
     474
     475        InstLookupResult<InstClassDecl> res = myInstClass().genericLookupInstClass(name);
     476        if (res.successful()) {
     477            return res;
     478        }
     479        return surroundingInstClass().lookupInstClass(name);
    474480    }
    475481
     
    478484            if (icd.matches(name))
    479485                return InstLookupResult.found(icd);
    480        
     486
    481487        return myInstClass().superLookupInstClass(name);
    482488    }
    483 
    484489
    485490    syn InstLookupResult<InstClassDecl> InstNode.memberInstClass(String name) = InstLookupResult.notFound();
     
    488493            if (icd.matches(name))
    489494                return InstLookupResult.found(findInnerClassIfAny(icd));
    490        
     495
    491496        for (InstExtends ie : getInstExtendss()) {
    492497            InstLookupResult<InstClassDecl> res = ie.memberInstClass(name);
     
    494499                return res;
    495500        }
    496        
     501
    497502        return InstLookupResult.notFound();
    498503    }
Note: See TracChangeset for help on using the changeset viewer.