Merge branch 'master' of github.com:JetBrains/kotlin

This commit is contained in:
James Strachan
2012-05-10 21:59:29 +01:00
192 changed files with 2679 additions and 2875 deletions
+1 -1
View File
@@ -14,7 +14,7 @@
<servers>
<server>
<id>jetbrains-kotlin-snapshots</id>
<id>jetbrains-kotlin</id>
<username>tc-kotlin</username>
<password>${tc-kotlin.password}</password>
</server>
+8 -7
View File
@@ -19,7 +19,8 @@
<guava.version>11.0.2</guava.version>
<junit-version>4.10</junit-version>
<kotlin-maven-plugin.version>0.2.3.8</kotlin-maven-plugin.version>
<kotlin-sdk>${project-root}/dist/kotlinc</kotlin-sdk>
<kotlin-dist>${project-root}/dist</kotlin-dist>
<kotlin-sdk>${kotlin-dist}/kotlinc</kotlin-sdk>
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
<maven-jar-plugin.version>2.4</maven-jar-plugin.version>
@@ -31,16 +32,16 @@
<distributionManagement>
<repository>
<uniqueVersion>false</uniqueVersion>
<id>jetbrains-kotlin-release</id>
<name>jetbrains-kotlin-release</name>
<url>http://repository.jetbrains.com/kotlin-release</url>
<id>jetbrains-kotlin</id>
<name>jetbrains-kotlin</name>
<url>http://repository.jetbrains.com/kotlin</url>
<layout>default</layout>
</repository>
<snapshotRepository>
<uniqueVersion>false</uniqueVersion>
<id>jetbrains-kotlin-snapshots</id>
<name>jetbrains-kotlin-snapshots</name>
<url>http://repository.jetbrains.com/kotlin-snapshots</url>
<id>jetbrains-kotlin</id>
<name>jetbrains-kotlin</name>
<url>http://repository.jetbrains.com/kotlin</url>
<layout>default</layout>
</snapshotRepository>
</distributionManagement>
+3 -3
View File
@@ -22,12 +22,12 @@
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<artifactId>kdoc</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kdoc</artifactId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
@@ -35,8 +35,8 @@
<artifactId>pegdown</artifactId>
<version>${pegdown.version}</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
+1 -1
View File
@@ -23,7 +23,7 @@
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<artifactId>kotlin-compiler</artifactId>
<version>${project.version}</version>
</dependency>
@@ -12,7 +12,7 @@ import java.util.List
import java.util.HashSet
import java.util.*
import com.intellij.psi.PsiElement
import org.jetbrains.jet.internal.com.intellij.psi.PsiElement
import org.jetbrains.jet.lang.resolve.BindingContext
import org.jetbrains.jet.lang.resolve.BindingContext.*
import org.jetbrains.jet.cli.common.CompilerPlugin
@@ -12,7 +12,7 @@ import java.util.List
import java.util.HashSet
import java.util.Collection
import com.intellij.psi.PsiElement
import org.jetbrains.jet.internal.com.intellij.psi.PsiElement
import org.jetbrains.jet.lang.resolve.BindingContext
import org.jetbrains.jet.lang.resolve.BindingContext.*
import org.jetbrains.jet.cli.common.CompilerPlugin
@@ -1,10 +1,10 @@
package org.jetbrains.kotlin.doc.highlighter
import com.intellij.psi.PsiFile
import org.jetbrains.jet.internal.com.intellij.psi.PsiFile
import org.jetbrains.jet.lang.psi.*
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiWhiteSpace
import com.intellij.psi.PsiComment
import org.jetbrains.jet.internal.com.intellij.psi.PsiElement
import org.jetbrains.jet.internal.com.intellij.psi.PsiWhiteSpace
import org.jetbrains.jet.internal.com.intellij.psi.PsiComment
class HtmlKotlinVisitor: JetTreeVisitor<StringBuilder>() {
@@ -1,8 +1,8 @@
package org.jetbrains.kotlin.doc.highlighter
import com.intellij.psi.*
import com.intellij.psi.tree.IElementType
import com.intellij.psi.tree.TokenSet
import org.jetbrains.jet.internal.com.intellij.psi.*
import org.jetbrains.jet.internal.com.intellij.psi.tree.IElementType
import org.jetbrains.jet.internal.com.intellij.psi.tree.TokenSet
import java.util.HashMap
import java.util.Map
import kotlin.template.HtmlFormatter
@@ -35,14 +35,15 @@ import org.jetbrains.kotlin.doc.templates.KDocTemplate
import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl
import org.jetbrains.jet.lang.descriptors.Visibility
import org.jetbrains.jet.lang.descriptors.ClassKind
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiFile
import com.intellij.psi.PsiDirectory
import org.jetbrains.jet.internal.com.intellij.psi.PsiElement
import org.jetbrains.jet.internal.com.intellij.psi.PsiFile
import org.jetbrains.jet.internal.com.intellij.psi.PsiDirectory
import org.jetbrains.jet.lang.descriptors.Visibilities
import org.jetbrains.jet.lang.diagnostics.DiagnosticUtils
import org.jetbrains.jet.lang.diagnostics.DiagnosticUtils.LineAndColumn
import com.intellij.psi.PsiFileSystemItem
import org.jetbrains.jet.internal.com.intellij.psi.PsiFileSystemItem
import java.io.File
import org.jetbrains.jet.internal.com.intellij.psi.PsiElement
/**
+20 -88
View File
@@ -19,16 +19,16 @@
<artifactId>kotlin-install</artifactId>
<packaging>pom</packaging>
<description>Installs the Kotlin runtime dependencies into the local maven repo</description>
<description>Installs and deploys the Kotlin compiler</description>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>org.jetbrains.kotlin:kotlin-compiler</id>
<phase>verify</phase>
<goals>
<goal>install-file</goal>
@@ -39,104 +39,36 @@
<version>${project.version}</version>
<packaging>jar</packaging>
<file>${kotlin-sdk}/lib/kotlin-compiler.jar</file>
<sources>${kotlin-dist}/kotlin-compiler-sources.jar</sources>
<javadoc>${kotlin-dist}/kotlin-compiler-javadoc.jar</javadoc>
<createChecksum>true</createChecksum>
<generatePom>true</generatePom>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>org.jetbrains.kotlin:kotlin-build-tools</id>
<phase>verify</phase>
<phase>deploy</phase>
<goals>
<goal>install-file</goal>
<goal>deploy-file</goal>
</goals>
<configuration>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-build-tools</artifactId>
<artifactId>kotlin-compiler</artifactId>
<version>${project.version}</version>
<packaging>jar</packaging>
<file>${kotlin-sdk}/lib/kotlin-build-tools.jar</file>
<createChecksum>true</createChecksum>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>org.jetbrains.kotlin:intellij-core</id>
<phase>verify</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>intellij-core</artifactId>
<version>${project.version}</version>
<packaging>jar</packaging>
<file>${kotlin-sdk}/lib/intellij-core.jar</file>
<createChecksum>true</createChecksum>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>org.jetbrains.kotlin:intellij-annotations</id>
<phase>verify</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>intellij-annotations</artifactId>
<version>${project.version}</version>
<packaging>jar</packaging>
<file>${kotlin-sdk}/lib/annotations.jar</file>
<createChecksum>true</createChecksum>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>org.jetbrains.kotlin:trove4j</id>
<phase>verify</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>trove4j</artifactId>
<version>${project.version}</version>
<packaging>jar</packaging>
<file>${kotlin-sdk}/lib/trove4j.jar</file>
<createChecksum>true</createChecksum>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>org.jetbrains.kotlin:picocontainer</id>
<phase>verify</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>picocontainer</artifactId>
<version>${project.version}</version>
<packaging>jar</packaging>
<file>${kotlin-sdk}/lib/picocontainer.jar</file>
<createChecksum>true</createChecksum>
<generatePom>true</generatePom>
</configuration>
</execution>
<execution>
<id>org.jetbrains.kotlin:dartc</id>
<phase>verify</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>dartc</artifactId>
<version>${project.version}</version>
<packaging>jar</packaging>
<file>${kotlin-sdk}/lib/js/${dart.name}.jar</file>
<createChecksum>true</createChecksum>
<file>${kotlin-sdk}/lib/kotlin-compiler.jar</file>
<sources>${kotlin-dist}/kotlin-compiler-sources.jar</sources>
<javadoc>${kotlin-dist}/kotlin-compiler-javadoc.jar</javadoc>
<generatePom>true</generatePom>
<repositoryId>jetbrains-kotlin</repositoryId>
<url>http://repository.jetbrains.com/kotlin</url>
<uniqueVersion>false</uniqueVersion>
</configuration>
</execution>
</executions>
+19 -105
View File
@@ -25,102 +25,13 @@
<artifactId>maven-plugin-api</artifactId>
<version>${maven.version}</version>
</dependency>
<!--
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>${maven.version}</version>
</dependency>
-->
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-compiler</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-runtime</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>intellij-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>intellij-annotations</artifactId>
<version>${project.version}</version>
</dependency>
<!-- TODO Req. only for K2JSTranslator, move it to compiler -->
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-build-tools</artifactId>
<version>${project.version}</version>
</dependency>
<!-- Shall be transitive dependencies of Kotlin compiler -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<dependency>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
<version>${asm.version}</version>
</dependency>
<dependency>
<groupId>asm</groupId>
<artifactId>asm-tree</artifactId>
<version>${asm.version}</version>
</dependency>
<dependency>
<groupId>asm</groupId>
<artifactId>asm-commons</artifactId>
<version>${asm.version}</version>
</dependency>
<dependency>
<groupId>asm</groupId>
<artifactId>asm-util</artifactId>
<version>${asm.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>trove4j</artifactId>
<version>${project.version}</version>
</dependency>
<!--
<dependency>
<groupId>net.sf.trove4j</groupId>
<artifactId>trove4j</artifactId>
<version>3.0.2</version>
</dependency>
-->
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>picocontainer</artifactId>
<version>${project.version}</version>
</dependency>
<!--
<dependency>
<groupId>org.picocontainer</groupId>
<artifactId>picocontainer</artifactId>
<version>2.9</version>
</dependency>
-->
<!-- for JS generation -->
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>dartc</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
@@ -145,30 +56,33 @@
<version>2.9</version>
</plugin>
<!-- Get rid of it right after compiler careful packaging -->
<!--
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.6</version>
<artifactId>maven-invoker-plugin</artifactId>
<version>1.5</version>
<configuration>
<projectsDirectory>src/it</projectsDirectory>
<cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
<pomIncludes>
<pomInclude>*/pom.xml</pomInclude>
</pomIncludes>
&lt;!&ndash;This could speed up test by providing local repo as remote repo for test but might be tricky on different OS&ndash;&gt;
&lt;!&ndash;<settingsFile>src/it/settings.xml</settingsFile>&ndash;&gt;
<localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
<postBuildHookScript>verify.bsh</postBuildHookScript>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
<goal>install</goal>
<goal>run</goal>
</goals>
<configuration>
<artifactSet>
<includes>
<include>org.jetbrains.kotlin:*</include>
</includes>
<excludes>
<exclude>org.jetbrains.kotlin:stdlib</exclude>
</excludes>
</artifactSet>
</configuration>
</execution>
</executions>
</plugin>
-->
</plugins>
</build>
</project>
@@ -0,0 +1,35 @@
<?xml version="1.0"?>
<settings>
<profiles>
<profile>
<id>it-repo</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>local.central</id>
<url>@localRepositoryUrl@</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>local.central</id>
<url>@localRepositoryUrl@</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
</settings>
@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jetbrains.kotlin.it</groupId>
<artifactId>test-helloworld</artifactId>
<version>1.0</version>
<name>Test Hello World project</name>
<description>
Test the kotlin-maven-plugin:compile goal on HelloWorld project.
</description>
<properties>
<kotlin.version>0.1-SNAPSHOT</kotlin.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
</dependency>
</dependencies>
<build>
<!--suppress MavenModelInspection -->
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
<!--suppress MavenModelInspection -->
<!--testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory-->
<plugins>
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>${kotlin.version}</version>
<executions>
<execution>
<id>compile</id>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<phase>process-test-sources</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,14 @@
package org.jetbrains
/**
* User: danielpenkin
* Date: 06.05.12
* Time: 22:53
*/
fun main(args : Array<String>) {
System.out?.println(getGreeting())
}
fun getGreeting() : String {
return "Hello, World!"
}
@@ -0,0 +1,18 @@
package org.jetbrains;
import org.junit.Test;
import static junit.framework.Assert.assertEquals;
/**
* User: danielpenkin
* Date: 06.05.12
* Time: 23:35
*/
public class HelloWorldJavaTest {
@Test
public void greeting() {
assertEquals("Hello, World!", org.jetbrains.namespace.getGreeting());
}
}
@@ -0,0 +1,7 @@
import java.io.*;
File file = new File( basedir, "target/test-helloworld-1.0.jar" );
if (!file.exists() || !file.isFile())
{
throw new FileNotFoundException( "Could not find generated JAR: " + file );
}
@@ -17,18 +17,17 @@
package org.jetbrains.kotlin.maven;
import com.google.common.io.Files;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.cli.common.CompilerPlugin;
import org.jetbrains.jet.cli.common.CompilerPluginContext;
import org.jetbrains.jet.internal.com.intellij.openapi.project.Project;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.k2js.config.Config;
import org.jetbrains.k2js.facade.K2JSTranslator;
import org.jetbrains.k2js.facade.MainCallParameters;
import java.io.File;
import java.io.IOException;
import java.lang.Override;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
@@ -54,15 +53,17 @@ public class K2JSCompilerPlugin implements CompilerPlugin {
}
};
K2JSTranslator translator = new K2JSTranslator(config);
final String code = translator.generateProgramCode(sources);
File file = new File(outFile);
try {
K2JSTranslator translator = new K2JSTranslator(config);
final String code = translator.generateProgramCode(sources, MainCallParameters.noCall());
File file = new File(outFile);
Files.createParentDirs(file);
Files.write(code, file, Charset.forName("UTF-8"));
} catch (IOException e) {
}
catch (Exception e) {
throw new RuntimeException(e);
}
}