Compare commits

...

13 Commits

Author SHA1 Message Date
Andrey Breslav
81a8dab1cb New module added for generated beans, related tests moved there 2012-11-19 17:11:46 +04:00
Andrey Breslav
4ba49e8689 ~TYpeSubstitutor over beans 2012-11-19 17:11:46 +04:00
Andrey Breslav
254a4a7b2d DataToBeanProcessor 2012-11-19 17:11:46 +04:00
Andrey Breslav
21dbebbc65 'else' supported in conditionals 2012-11-19 17:11:45 +04:00
Andrey Breslav
d1f8aafcc9 Free references redirected correctly on copy 2012-11-19 17:11:45 +04:00
Andrey Breslav
ebcf145fd6 Bound references redirected correctly on copy 2012-11-19 17:11:44 +04:00
Andrey Breslav
0824611fd9 ~ BeanCopyProcessorTest.java comment removed 2012-11-19 17:11:44 +04:00
Andrey Breslav
d5074364a6 ~BeanCopyProcessorTest 2012-11-19 17:11:44 +04:00
Andrey Breslav
892658d3af ~ Annotations on descriptor classes 2012-11-19 17:11:44 +04:00
Andrey Breslav
89c6920502 ~ frontend depends on bean-generator runtime (module and lib!!!) 2012-11-19 17:11:44 +04:00
Andrey Breslav
8a9b7a4e4c ~ bean-generator libs 2012-11-19 17:11:44 +04:00
Andrey Breslav
4e004a2549 ~ bean-generator modules 2012-11-19 17:11:43 +04:00
Andrey Breslav
3bca9b37a3 ~ storing bean-generator in a different repo 2012-11-19 17:11:43 +04:00
21 changed files with 24899 additions and 6 deletions

3
.gitignore vendored
View File

@@ -20,4 +20,5 @@ tmp
gh-pages
*.class
.DS_Store
android.tests.dependencies
android.tests.dependencies
bean-generator

View File

@@ -0,0 +1,8 @@
<component name="ArtifactManager">
<artifact type="jar" name="bean-generator-runtime:jar">
<output-path>$PROJECT_DIR$/bean-generator/runtime/jar</output-path>
<root id="archive" name="bean-generator-runtime.jar">
<element id="module-output" name="bean-generator-runtime" />
</root>
</artifact>
</component>

View File

@@ -0,0 +1,9 @@
<component name="libraryTable">
<library name="bean-generator-runtime">
<CLASSES>
<root url="jar://$PROJECT_DIR$/bean-generator/runtime/jar/bean-generator-runtime.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

4
.idea/misc.xml generated
View File

@@ -1,5 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ASMPluginConfiguration">
<asm skipDebug="false" skipFrames="false" skipCode="false" expandFrames="false" />
<groovy codeStyle="LEGACY" />
</component>
<component name="EntryPointsManager">
<entry_points version="2.0" />
</component>

3
.idea/modules.xml generated
View File

@@ -5,6 +5,8 @@
<module fileurl="file://$PROJECT_DIR$/Kotlin.iml" filepath="$PROJECT_DIR$/Kotlin.iml" />
<module fileurl="file://$PROJECT_DIR$/compiler/android-tests/android-tests.iml" filepath="$PROJECT_DIR$/compiler/android-tests/android-tests.iml" />
<module fileurl="file://$PROJECT_DIR$/compiler/backend/backend.iml" filepath="$PROJECT_DIR$/compiler/backend/backend.iml" />
<module fileurl="file://$PROJECT_DIR$/bean-generator/bean-generator.iml" filepath="$PROJECT_DIR$/bean-generator/bean-generator.iml" />
<module fileurl="file://$PROJECT_DIR$/bean-generator/runtime/bean-generator-runtime.iml" filepath="$PROJECT_DIR$/bean-generator/runtime/bean-generator-runtime.iml" />
<module fileurl="file://$PROJECT_DIR$/build-tools/build-tools.iml" filepath="$PROJECT_DIR$/build-tools/build-tools.iml" />
<module fileurl="file://$PROJECT_DIR$/compiler/cli/cli.iml" filepath="$PROJECT_DIR$/compiler/cli/cli.iml" />
<module fileurl="file://$PROJECT_DIR$/compiler/cli/cli-common/cli-common.iml" filepath="$PROJECT_DIR$/compiler/cli/cli-common/cli-common.iml" />
@@ -12,6 +14,7 @@
<module fileurl="file://$PROJECT_DIR$/compiler/tests/compiler-tests.iml" filepath="$PROJECT_DIR$/compiler/tests/compiler-tests.iml" />
<module fileurl="file://$PROJECT_DIR$/compiler/frontend/frontend.iml" filepath="$PROJECT_DIR$/compiler/frontend/frontend.iml" />
<module fileurl="file://$PROJECT_DIR$/compiler/frontend.java/frontend.java.iml" filepath="$PROJECT_DIR$/compiler/frontend.java/frontend.java.iml" />
<module fileurl="file://$PROJECT_DIR$/bean-generator/generated-beans/generated-beans.iml" filepath="$PROJECT_DIR$/bean-generator/generated-beans/generated-beans.iml" />
<module fileurl="file://$PROJECT_DIR$/generators/generators.iml" filepath="$PROJECT_DIR$/generators/generators.iml" />
<module fileurl="file://$PROJECT_DIR$/grammar/grammar.iml" filepath="$PROJECT_DIR$/grammar/grammar.iml" />
<module fileurl="file://$PROJECT_DIR$/ide-compiler-runner/ide-compiler-runner.iml" filepath="$PROJECT_DIR$/ide-compiler-runner/ide-compiler-runner.iml" />

1
.idea/vcs.xml generated
View File

@@ -12,6 +12,7 @@
</component>
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$/bean-generator" vcs="Git" />
</component>
</project>

View File

@@ -10,6 +10,17 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="PROVIDED" name="intellij-core" level="project" />
<orderEntry type="library" name="javax.inject" level="project" />
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$Tests$/bean-generator/runtime/jar/bean-generator-runtime.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="library" name="bean-generator-runtime" level="project" />
<orderEntry type="module" module-name="bean-generator-runtime" />
<orderEntry type="module" module-name="util" />
</component>
</module>

View File

@@ -18,6 +18,8 @@ package org.jetbrains.jet.lang.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.buildergen.runtime.Reference;
import org.jetbrains.jet.buildergen.runtime.Skip;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeSubstitutor;
@@ -31,6 +33,7 @@ public interface CallableDescriptor extends DeclarationDescriptorWithVisibility,
@Nullable
ReceiverParameterDescriptor getReceiverParameter();
@Skip
@Nullable
ReceiverParameterDescriptor getExpectedThisObject();
@@ -53,6 +56,7 @@ public interface CallableDescriptor extends DeclarationDescriptorWithVisibility,
@NotNull
List<ValueParameterDescriptor> getValueParameters();
@Reference
@NotNull
Set<? extends CallableDescriptor> getOverriddenDescriptors();
}

View File

@@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.buildergen.runtime.Skip;
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeProjection;
@@ -34,6 +35,7 @@ public interface ClassDescriptor extends ClassifierDescriptor, MemberDescriptor,
@NotNull
JetScope getMemberScope(List<TypeProjection> typeArguments);
@Skip
@NotNull
JetScope getUnsubstitutedInnerClassesScope();
@@ -73,6 +75,7 @@ public interface ClassDescriptor extends ClassifierDescriptor, MemberDescriptor,
@NotNull
Visibility getVisibility();
@Skip
@NotNull
ReceiverParameterDescriptor getThisAsReceiverParameter();
}

View File

@@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.buildergen.runtime.Skip;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeConstructor;
@@ -28,11 +29,14 @@ public interface ClassifierDescriptor extends DeclarationDescriptorNonRoot {
@NotNull
TypeConstructor getTypeConstructor();
@Skip
@NotNull
JetType getDefaultType();
@Skip
@Nullable
JetType getClassObjectType();
@Skip
boolean isClassObjectAValue();
}

View File

@@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.buildergen.runtime.Reference;
import org.jetbrains.jet.lang.descriptors.annotations.Annotated;
import org.jetbrains.jet.lang.types.TypeSubstitutor;
@@ -32,9 +33,11 @@ public interface DeclarationDescriptor extends Annotated, Named {
* returns <code>this</code> object if the current descriptor is original itself
*/
@NotNull
@Reference
DeclarationDescriptor getOriginal();
@Nullable
@Reference
DeclarationDescriptor getContainingDeclaration();
@Nullable

View File

@@ -19,6 +19,7 @@ package org.jetbrains.jet.lang.descriptors;
import com.google.common.collect.Sets;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.buildergen.runtime.Skip;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.types.TypeSubstitutor;
@@ -102,6 +103,7 @@ public abstract class PropertyAccessorDescriptor extends DeclarationDescriptorNo
this.visibility = visibility;
}
@Skip
@NotNull
public PropertyDescriptor getCorrespondingProperty() {
return correspondingProperty;

View File

@@ -20,6 +20,7 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.buildergen.runtime.Skip;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
@@ -182,6 +183,7 @@ public class PropertyDescriptor extends VariableDescriptorImpl implements Callab
return setter;
}
@Skip
@NotNull
public List<PropertyAccessorDescriptor> getAccessors() {
List<PropertyAccessorDescriptor> r = Lists.newArrayListWithCapacity(2);

View File

@@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.buildergen.runtime.Skip;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeSubstitutor;
@@ -34,6 +35,7 @@ public interface ReceiverParameterDescriptor extends DeclarationDescriptor {
@NotNull
JetType getType();
@Skip
@NotNull
ReceiverValue getValue();

View File

@@ -17,6 +17,7 @@
package org.jetbrains.jet.lang.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.buildergen.runtime.Skip;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeConstructor;
import org.jetbrains.jet.lang.types.TypeSubstitutor;
@@ -35,12 +36,14 @@ public interface TypeParameterDescriptor extends ClassifierDescriptor {
@NotNull
Set<JetType> getUpperBounds();
@Skip
@NotNull
JetType getUpperBoundsAsType();
@NotNull
Set<JetType> getLowerBounds();
@Skip
@NotNull
JetType getLowerBoundsAsType();

View File

@@ -17,6 +17,7 @@
package org.jetbrains.jet.lang.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.buildergen.runtime.Skip;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeSubstitutor;
@@ -24,6 +25,7 @@ import org.jetbrains.jet.lang.types.TypeSubstitutor;
* @author abreslav
*/
public interface VariableDescriptor extends CallableDescriptor {
@Skip // getReturnType() is enough
@NotNull
JetType getType();

View File

@@ -17,6 +17,8 @@
package org.jetbrains.jet.lang.types;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.buildergen.runtime.Reference;
import org.jetbrains.jet.buildergen.runtime.Skip;
import org.jetbrains.jet.lang.descriptors.annotations.Annotated;
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
@@ -28,10 +30,12 @@ import java.util.List;
* @see JetTypeChecker#isSubtypeOf(JetType, JetType)
*/
public interface JetType extends Annotated {
@Reference
@NotNull TypeConstructor getConstructor();
@NotNull List<TypeProjection> getArguments();
boolean isNullable();
@Skip
@NotNull
JetScope getMemberScope();

View File

@@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.types;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.buildergen.runtime.Reference;
import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor;
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
import org.jetbrains.jet.lang.descriptors.annotations.Annotated;
@@ -38,5 +39,6 @@ public interface TypeConstructor extends Annotated {
boolean isSealed();
@Nullable
@Reference
ClassifierDescriptor getDeclarationDescriptor();
}

View File

@@ -59,7 +59,7 @@ public class TypeSubstitutor {
public static final TypeSubstitutor EMPTY = create(TypeSubstitution.EMPTY);
private static final class SubstitutionException extends Exception {
public static final class SubstitutionException extends RuntimeException {
public SubstitutionException(String message) {
super(message);
}
@@ -205,19 +205,19 @@ public class TypeSubstitutor {
return substitutedArguments;
}
private static Variance combine(Variance typeParameterVariance, Variance projectionKind) {
public static Variance combine(Variance typeParameterVariance, Variance projectionKind) {
if (typeParameterVariance == Variance.INVARIANT) return projectionKind;
if (projectionKind == Variance.INVARIANT) return typeParameterVariance;
return typeParameterVariance.superpose(projectionKind);
}
private enum VarianceConflictType {
public enum VarianceConflictType {
NO_CONFLICT,
IN_IN_OUT_POSITION,
OUT_IN_IN_POSITION;
OUT_IN_IN_POSITION
}
private static VarianceConflictType conflictType(Variance position, Variance argument) {
public static VarianceConflictType conflictType(Variance position, Variance argument) {
if (position == Variance.IN_VARIANCE && argument == Variance.OUT_VARIANCE) {
return VarianceConflictType.OUT_IN_IN_POSITION;
}

File diff suppressed because it is too large Load Diff

View File

@@ -16,6 +16,8 @@
<orderEntry type="library" name="idea-full" level="project" />
<orderEntry type="library" name="asm-addons" level="project" />
<orderEntry type="library" name="dx-android" level="project" />
<orderEntry type="module" module-name="bean-generator" scope="TEST" />
<orderEntry type="module" module-name="bean-generator-runtime" />
</component>
</module>