Package com.redhat.ceylon.compiler.typechecker.model

Examples of com.redhat.ceylon.compiler.typechecker.model.Module


    public void removeDeclarations(List<Declaration> declarations)  {
        synchronized(getLock()){
            // keep in sync with getOrCreateDeclaration
            for (Declaration decl : declarations) {
                String fqn = decl.getQualifiedNameString().replace("::", ".");
                Module module = Decl.getModuleContainer(decl.getContainer());
                Map<String, Declaration> firstCache = null;
                Map<String, Declaration> secondCache = null;
                if(Decl.isToplevel(decl)){
                    if(Decl.isValue(decl)){
                        firstCache = valueDeclarationsByName;
View Full Code Here


    public Module findModuleForFile(File file){
        File path = file.getParentFile();
        while (path != null) {
            String name = path.getPath().replaceAll("[\\\\/]", ".");
            Module m = getLoadedModule(name);
            if (m != null) {
                return m;
            }
            path = path.getParentFile();
        }
View Full Code Here

     * constructor. A rewrite of the logic of the typechecker scanning would fix this, but at this point it's just faster to let it create
     * the wrong default package and fix it before we start parsing anything.
     */
    public void fixDefaultPackage()  {
        synchronized(getLock()){
            Module defaultModule = modules.getDefaultModule();
            Package defaultPackage = defaultModule.getDirectPackage("");
            if(defaultPackage instanceof LazyPackage == false){
                LazyPackage newPkg = findOrCreateModulelessPackage("");
                List<Package> defaultModulePackages = defaultModule.getPackages();
                if(defaultModulePackages.size() != 1)
                    throw new RuntimeException("Assertion failed: default module has more than the default package: "+defaultModulePackages.size());
                defaultModulePackages.clear();
                defaultModulePackages.add(newPkg);
                newPkg.setModule(defaultModule);
View Full Code Here

   
    public void loadStandardModules(){
        // set up the type factory
        Timer nested = timer.nestedTimer();
        nested.startTask("load ceylon.language");
        Module languageModule = findOrCreateModule(CEYLON_LANGUAGE, null);
        addModuleToClassPath(languageModule, null);
        Package languagePackage = findOrCreatePackage(languageModule, CEYLON_LANGUAGE);
        typeFactory.setPackage(languagePackage);
       
        // make sure the language module has its real dependencies added, because we need them in the classpath
        // otherwise we will get errors on the Util and Metamodel calls we insert
        languageModule.addImport(new ModuleImport(findOrCreateModule("com.redhat.ceylon.compiler.java", Versions.CEYLON_VERSION_NUMBER), false, false));
        languageModule.addImport(new ModuleImport(findOrCreateModule("com.redhat.ceylon.compiler.js", Versions.CEYLON_VERSION_NUMBER), false, false));
        languageModule.addImport(new ModuleImport(findOrCreateModule("com.redhat.ceylon.common", Versions.CEYLON_VERSION_NUMBER), false, false));
        languageModule.addImport(new ModuleImport(findOrCreateModule("com.redhat.ceylon.module-resolver", Versions.CEYLON_VERSION_NUMBER), false, false));
        languageModule.addImport(new ModuleImport(findOrCreateModule("com.redhat.ceylon.typechecker", Versions.CEYLON_VERSION_NUMBER), false, false));
        languageModule.addImport(new ModuleImport(findOrCreateModule("org.jboss.modules", "1.3.3.Final"), false, false));
        languageModule.addImport(new ModuleImport(findOrCreateModule("org.jboss.jandex", "1.0.3.Final"), false, false));
       
        nested.endTask();
       
        nested.startTask("load JDK");
        // make sure the jdk modules are loaded
        for(String jdkModule : JDKUtils.getJDKModuleNames())
            findOrCreateModule(jdkModule, JDKUtils.jdk.version);
        for(String jdkOracleModule : JDKUtils.getOracleJDKModuleNames())
            findOrCreateModule(jdkOracleModule, JDKUtils.jdk.version);
        Module jdkModule = findOrCreateModule(JAVA_BASE_MODULE_NAME, JDKUtils.jdk.version);
        nested.endTask();
       
        /*
         * We start by loading java.lang and ceylon.language because we will need them no matter what.
         */
 
View Full Code Here

        private Package pkg = new Package();
        private Unit unit = new Unit();
       
        private MockLoader(){
            mod.setName(Arrays.asList(""));
            mod.setLanguageModule(new Module());
            pkg.setName(Arrays.asList(""));
            pkg.setModule(mod);
            unit.setPackage(pkg);
            Class a = makeClass("a");
            makeClass("b", a);
View Full Code Here

            return makeErroneous(null, "compiler bug: " + type + " is an unknown java array type");
        }
    }
   
    boolean isJavaEnumType(ProducedType type) {
        Module jdkBaseModule = loader().getJDKBaseModule();
        Package javaLang = jdkBaseModule.getPackage("java.lang");
        TypeDeclaration enumDecl = (TypeDeclaration)javaLang.getDirectMember("Enum", null, false);
        if (type.getDeclaration().isAnonymous()) {
            type = type.getDeclaration().getExtendedType();
        }
        return type.isSubtypeOf(enumDecl.getProducedType(null, Collections.singletonList(type)));
View Full Code Here

    }

    List<JCAnnotation> makeAtModule(Module module) {
        ListBuffer<JCExpression> imports = new ListBuffer<JCTree.JCExpression>();
        for(ModuleImport dependency : module.getImports()){
            Module dependencyModule = dependency.getModule();
            // do not include the implicit language module as a dependency
            if(dependencyModule.getNameAsString().equals(AbstractModelLoader.CEYLON_LANGUAGE))
                continue;
            JCExpression dependencyName = make().Assign(naming.makeUnquotedIdent("name"),
                    make().Literal(dependencyModule.getNameAsString()));
            JCExpression dependencyVersion = null;
            if(dependencyModule.getVersion() != null)
                dependencyVersion = make().Assign(naming.makeUnquotedIdent("version"),
                        make().Literal(dependencyModule.getVersion()));
           
            List<JCExpression> spec;
            if(dependencyVersion != null)
                spec = List.<JCExpression>of(dependencyName, dependencyVersion);
            else
View Full Code Here

    }

    public JCTree transform(Tree.ModuleLiteral expr) {
        at(expr);

        Module mod = (Module) expr.getImportPath().getModel();
        return makeModuleLiteralCall(mod);
    }
View Full Code Here

        return toplevelCall;
    }

    private JCExpression makePackageLiteralCall(Package pkg) {
        // get the module
        Module module = pkg.getModule();
        JCExpression moduleCall = makeModuleLiteralCall(module);
       
        // now get the package
        return make().Apply(null, makeSelect(moduleCall, "findPackage"),
                                             List.<JCExpression>of(ceylonLiteral(pkg.getNameAsString())));
View Full Code Here

    }

    @Override
    public void loadStandardModules(AbstractModelLoader modelLoader) {
        com.redhat.ceylon.compiler.typechecker.context.Context ceylonContext = LanguageCompiler.getCeylonContextInstance(context);
        Module languageModule = ceylonContext.getModules().getLanguageModule();
        if (languageModule.getVersion() == null) {
            languageModule.setVersion(TypeChecker.LANGUAGE_MODULE_VERSION);
        }
        modelLoader.loadStandardModules();
    }
View Full Code Here

TOP

Related Classes of com.redhat.ceylon.compiler.typechecker.model.Module

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.