From c2fbbff782ec05b5e811795d34dd8616232c377c Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 15 Jun 2011 18:00:10 +0400 Subject: [PATCH] JET-50 Drop the 'new' keyword --- grammar/src/expressions.grm | 2 +- idea/src/org/jetbrains/jet/JetNodeTypes.java | 2 +- .../jet/codegen/ExpressionCodegen.java | 21 +- .../jet/lang/cfg/JetControlFlowProcessor.java | 14 +- .../jet/lang/descriptors/ClassDescriptor.java | 2 +- .../lang/descriptors/ClassDescriptorImpl.java | 20 +- .../ConstructorDescriptorImpl.java | 10 +- .../LazySubstitutingClassDescriptor.java | 2 +- .../descriptors/MutableClassDescriptor.java | 18 +- .../lang/parsing/JetExpressionParsing.java | 45 +- .../jet/lang/psi/JetDelegatorToSuperCall.java | 8 + .../jet/lang/psi/JetNewExpression.java | 102 ++- .../jetbrains/jet/lang/psi/JetVisitor.java | 8 +- .../lang/resolve/ClassDescriptorResolver.java | 36 +- .../jet/lang/resolve/TopDownAnalyzer.java | 2 +- .../jet/lang/resolve/WritableScopeImpl.java | 21 + .../resolve/java/JavaClassDescriptor.java | 9 +- .../resolve/java/JavaDescriptorResolver.java | 7 +- .../lang/resolve/java/JavaPackageScope.java | 15 +- .../jetbrains/jet/lang/types/ErrorUtils.java | 2 +- .../jet/lang/types/JetTypeInferrer.java | 18 +- .../jetbrains/jet/lang/types/TypeUtils.java | 6 +- idea/src/org/jetbrains/jet/lexer/Jet.flex | 2 +- .../org/jetbrains/jet/lexer/JetTokens.java | 6 +- .../org/jetbrains/jet/lexer/_JetLexer.java | 637 +++++++++--------- idea/testData/cfg/ArrayAccess.instructions | 5 +- idea/testData/cfg/ArrayAccess.jet | 2 +- idea/testData/cfg/Assignments.instructions | 5 +- idea/testData/cfg/Assignments.jet | 2 +- idea/testData/cfg/FailFunction.instructions | 9 +- idea/testData/cfg/FailFunction.jet | 2 +- .../checker/BinaryCallsOnNullableValues.jet | 6 +- idea/testData/checker/Bounds.jet | 12 +- idea/testData/checker/ExtensionFunctions.jet | 2 +- idea/testData/checker/ForRangeConventions.jet | 20 +- idea/testData/checker/IncDec.jet | 6 +- idea/testData/checker/MultipleBounds.jet | 12 +- idea/testData/checker/ResolveToJava.jet | 10 +- idea/testData/checker/UnreachableCode.jet | 2 +- .../checker/regression/DoubleDefine.jet | 16 +- idea/testData/checker/regression/Jet72.jet | 2 +- .../codegen/classes/diamondInheritance.jet | 2 +- .../codegen/classes/funDelegation.jet | 6 +- idea/testData/codegen/classes/inheritance.jet | 16 +- .../codegen/classes/inheritedInnerClass.jet | 4 +- .../codegen/classes/inheritedMethod.jet | 2 +- .../codegen/classes/initializerBlock.jet | 2 +- .../codegen/classes/initializerBlockDImpl.jet | 6 +- idea/testData/codegen/classes/innerClass.jet | 6 +- .../classes/newInstanceDefaultConstructor.jet | 2 +- idea/testData/codegen/classes/outerThis.jet | 4 +- .../codegen/classes/propertyDelegation.jet | 6 +- .../codegen/classes/propertyInInitializer.jet | 4 +- .../codegen/classes/rightHandOverride.jet | 4 +- .../codegen/controlStructures/for.jet | 2 +- .../codegen/controlStructures/forInArray.jet | 2 +- .../codegen/extensionFunctions/simple.jet | 2 +- .../codegen/extensionFunctions/whenFail.jet | 4 +- idea/testData/codegen/functionCall.jet | 2 +- .../newInstanceExplicitConstructor.jet | 2 +- idea/testData/codegen/typeInfo/asInLoop.jet | 2 +- .../codegen/typeInfo/asSafeWithGenerics.jet | 4 +- .../testData/codegen/typeInfo/getTypeInfo.jet | 2 +- .../typeInfo/isWithGenericParameters.jet | 4 +- .../codegen/typeInfo/isWithGenerics.jet | 2 +- .../codegen/typeInfo/typeOfOperator.jet | 2 +- idea/testData/psi/ControlStructures.jet | 2 +- idea/testData/psi/ControlStructures.txt | 10 +- idea/testData/psi/ModifierAsSelector.jet | 2 +- idea/testData/psi/ModifierAsSelector.txt | 10 +- idea/testData/psi/RootNamespace.jet | 2 +- idea/testData/psi/RootNamespace.txt | 34 +- idea/testData/psi/SimpleExpressions.jet | 10 +- idea/testData/psi/SimpleExpressions.txt | 82 +-- idea/testData/psi/ThisType.jet | 2 +- idea/testData/psi/ThisType.txt | 24 +- .../psi/examples/AnonymousObjects.jet | 2 +- .../psi/examples/AnonymousObjects.txt | 10 +- idea/testData/psi/examples/Builder.jet | 4 +- idea/testData/psi/examples/Builder.txt | 20 +- idea/testData/psi/examples/Graph.jet | 14 +- idea/testData/psi/examples/Graph.txt | 162 ++--- idea/testData/psi/examples/Queue.jet | 4 +- idea/testData/psi/examples/Queue.txt | 20 +- idea/testData/psi/examples/Stack.jet | 2 +- idea/testData/psi/examples/Stack.txt | 26 +- .../testData/psi/examples/UpdateOperation.jet | 4 +- .../testData/psi/examples/UpdateOperation.txt | 20 +- .../psi/examples/collections/ArrayList.jet | 6 +- .../psi/examples/collections/ArrayList.txt | 30 +- .../psi/examples/collections/HashMap.jet | 6 +- .../psi/examples/collections/HashMap.txt | 38 +- idea/testData/resolve/Basic.jet | 2 +- idea/testData/resolve/ClassObjects.jet | 2 +- .../resolve/PrimaryConstructorParameters.jet | 2 +- idea/testData/resolve/PrimaryConstructors.jet | 2 +- idea/testData/resolve/Projections.jet | 22 +- .../resolve/ResolveOfInfixExpressions.jet | 18 +- idea/testData/resolve/ResolveToJava.jet | 6 +- idea/testData/resolve/ScopeInteraction.jet | 2 +- .../jet/codegen/ControlStructuresTest.java | 2 +- .../jet/codegen/NamespaceGenTest.java | 6 +- .../jet/types/JetTypeCheckerTest.java | 69 +- 103 files changed, 921 insertions(+), 980 deletions(-) diff --git a/grammar/src/expressions.grm b/grammar/src/expressions.grm index 74c9dd4f5f1..edceb3ebf36 100644 --- a/grammar/src/expressions.grm +++ b/grammar/src/expressions.grm @@ -87,7 +87,7 @@ atomicExpression : when : try : "typeof" "(" expression ")" - : "new" constructorInvocation +// : "new" constructorInvocation : objectLiteral // : declaration : jump diff --git a/idea/src/org/jetbrains/jet/JetNodeTypes.java b/idea/src/org/jetbrains/jet/JetNodeTypes.java index 2e34e9805c4..7db4be3cd48 100644 --- a/idea/src/org/jetbrains/jet/JetNodeTypes.java +++ b/idea/src/org/jetbrains/jet/JetNodeTypes.java @@ -74,7 +74,7 @@ public interface JetNodeTypes { JetNodeType TUPLE = new JetNodeType("TUPLE", JetTupleExpression.class); JetNodeType PARENTHESIZED = new JetNodeType("PARENTHESIZED", JetParenthesizedExpression.class); JetNodeType TYPEOF = new JetNodeType("TYPEOF", JetTypeofExpression.class); - JetNodeType NEW = new JetNodeType("NEW", JetNewExpression.class); +// JetNodeType NEW = new JetNodeType("NEW", JetNewExpression.class); JetNodeType RETURN = new JetNodeType("RETURN", JetReturnExpression.class); JetNodeType THROW = new JetNodeType("THROW", JetThrowExpression.class); JetNodeType CONTINUE = new JetNodeType("CONTINUE", JetContinueExpression.class); diff --git a/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 5344035d15a..85aabb3e97d 100644 --- a/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/idea/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -673,7 +673,10 @@ public class ExpressionCodegen extends JetVisitor { if (callee instanceof JetSimpleNameExpression) { DeclarationDescriptor funDescriptor = bindingContext.resolveReferenceExpression((JetSimpleNameExpression) callee); - if (funDescriptor instanceof FunctionDescriptor) { + if (funDescriptor instanceof ConstructorDescriptor) { + generateConstructorCall(expression, (JetSimpleNameExpression) callee); + } + else if (funDescriptor instanceof FunctionDescriptor) { final DeclarationDescriptor functionParent = funDescriptor.getContainingDeclaration(); if (isNumberPrimitive(functionParent)) { if (funDescriptor.getName().equals("inv")) { @@ -1322,11 +1325,7 @@ public class ExpressionCodegen extends JetVisitor { } } - @Override - public void visitNewExpression(JetNewExpression expression) { - JetTypeReference typeReference = expression.getTypeReference(); - final JetUserType constructorType = (JetUserType) typeReference.getTypeElement(); - final JetSimpleNameExpression constructorReference = constructorType.getReferenceExpression(); + private void generateConstructorCall(JetCallExpression expression, JetSimpleNameExpression constructorReference) { DeclarationDescriptor constructorDescriptor = bindingContext.resolveReferenceExpression(constructorReference); final PsiElement declaration = bindingContext.getDeclarationPsiElement(constructorDescriptor); Type type; @@ -1334,7 +1333,7 @@ public class ExpressionCodegen extends JetVisitor { type = generateJavaConstructorCall(expression, (PsiMethod) declaration); } else if (constructorDescriptor instanceof ConstructorDescriptor) { - type = typeMapper.mapType(bindingContext.resolveTypeReference(typeReference), OwnerKind.IMPLEMENTATION); + type = typeMapper.mapType(bindingContext.getExpressionType(expression), OwnerKind.IMPLEMENTATION); if (type.getSort() == Type.ARRAY) { generateNewArray(expression, type); } @@ -1350,8 +1349,8 @@ public class ExpressionCodegen extends JetVisitor { Method method = typeMapper.mapConstructorSignature((ConstructorDescriptor) constructorDescriptor, OwnerKind.IMPLEMENTATION); pushMethodArguments(expression, method); - for (JetTypeReference typeArgumentReference : constructorType.getTypeArgumentsAsTypes()) { - JetType typeArgument = bindingContext.resolveTypeReference(typeArgumentReference); + for (JetTypeProjection jetTypeArgument : expression.getTypeArguments()) { + JetType typeArgument = bindingContext.resolveTypeReference(jetTypeArgument.getTypeReference()); // TODO is the makeNullable() call correct here? ClassCodegen.newTypeInfo(v, typeMapper.mapType(TypeUtils.makeNullable(typeArgument))); } @@ -1371,7 +1370,7 @@ public class ExpressionCodegen extends JetVisitor { } } - private Type generateJavaConstructorCall(JetNewExpression expression, PsiMethod constructor) { + private Type generateJavaConstructorCall(JetCallExpression expression, PsiMethod constructor) { PsiClass javaClass = constructor.getContainingClass(); Type type = JetTypeMapper.psiClassType(javaClass); v.anew(type); @@ -1382,7 +1381,7 @@ public class ExpressionCodegen extends JetVisitor { return type; } - private void generateNewArray(JetNewExpression expression, Type type) { + private void generateNewArray(JetCallExpression expression, Type type) { List args = expression.getValueArguments(); if (args.size() != 1) { throw new CompilationException("array constructor requires one value argument"); diff --git a/idea/src/org/jetbrains/jet/lang/cfg/JetControlFlowProcessor.java b/idea/src/org/jetbrains/jet/lang/cfg/JetControlFlowProcessor.java index 3ee9f72acef..92172e76d6e 100644 --- a/idea/src/org/jetbrains/jet/lang/cfg/JetControlFlowProcessor.java +++ b/idea/src/org/jetbrains/jet/lang/cfg/JetControlFlowProcessor.java @@ -546,13 +546,13 @@ public class JetControlFlowProcessor { builder.read(expression); } - @Override - public void visitNewExpression(JetNewExpression expression) { - // TODO : Instantiated class is loaded - // TODO : type arguments? - visitCall(expression); - builder.read(expression); - } +// @Override +// public void visitNewExpression(JetNewExpression expression) { +// // TODO : Instantiated class is loaded +// // TODO : type arguments? +// visitCall(expression); +// builder.read(expression); +// } @Override public void visitProperty(JetProperty property) { diff --git a/idea/src/org/jetbrains/jet/lang/descriptors/ClassDescriptor.java b/idea/src/org/jetbrains/jet/lang/descriptors/ClassDescriptor.java index f7e54b4e687..c1e631da433 100644 --- a/idea/src/org/jetbrains/jet/lang/descriptors/ClassDescriptor.java +++ b/idea/src/org/jetbrains/jet/lang/descriptors/ClassDescriptor.java @@ -18,7 +18,7 @@ public interface ClassDescriptor extends ClassifierDescriptor { JetScope getMemberScope(List typeArguments); @NotNull - FunctionGroup getConstructors(List typeArguments); + FunctionGroup getConstructors(); @Nullable ConstructorDescriptor getUnsubstitutedPrimaryConstructor(); diff --git a/idea/src/org/jetbrains/jet/lang/descriptors/ClassDescriptorImpl.java b/idea/src/org/jetbrains/jet/lang/descriptors/ClassDescriptorImpl.java index 1ee46e04256..4ac2c055f56 100644 --- a/idea/src/org/jetbrains/jet/lang/descriptors/ClassDescriptorImpl.java +++ b/idea/src/org/jetbrains/jet/lang/descriptors/ClassDescriptorImpl.java @@ -37,10 +37,14 @@ public class ClassDescriptorImpl extends DeclarationDescriptorImpl implements Cl this.memberDeclarations = memberDeclarations; this.constructors = constructors; this.primaryConstructor = primaryConstructor; - assert !constructors.isEmpty() || primaryConstructor == null; +// assert !constructors.isEmpty() || primaryConstructor == null; return this; } + public void setPrimaryConstructor(@NotNull ConstructorDescriptor primaryConstructor) { + this.primaryConstructor = primaryConstructor; + } + @Override @NotNull public TypeConstructor getTypeConstructor() { @@ -66,13 +70,13 @@ public class ClassDescriptorImpl extends DeclarationDescriptorImpl implements Cl @NotNull @Override - public FunctionGroup getConstructors(List typeArguments) { - assert typeArguments.size() == getTypeConstructor().getParameters().size() : "Argument list length mismatch for " + getName(); - if (typeArguments.size() == 0) { - return constructors; - } - Map substitutionContext = TypeUtils.buildSubstitutionContext(getTypeConstructor().getParameters(), typeArguments); - return new LazySubstitutingFunctionGroup(TypeSubstitutor.create(substitutionContext), constructors); + public FunctionGroup getConstructors() { +// assert typeArguments.size() == getTypeConstructor().getParameters().size() : "Argument list length mismatch for " + getName(); +// if (typeArguments.size() == 0) { +// return constructors; +// } +// Map substitutionContext = TypeUtils.buildSubstitutionContext(getTypeConstructor().getParameters(), typeArguments); + return constructors;// LazySubstitutingFunctionGroup(TypeSubstitutor.create(substitutionContext), constructors); } @NotNull diff --git a/idea/src/org/jetbrains/jet/lang/descriptors/ConstructorDescriptorImpl.java b/idea/src/org/jetbrains/jet/lang/descriptors/ConstructorDescriptorImpl.java index 418c2a2a4c0..aceb0b1ec56 100644 --- a/idea/src/org/jetbrains/jet/lang/descriptors/ConstructorDescriptorImpl.java +++ b/idea/src/org/jetbrains/jet/lang/descriptors/ConstructorDescriptorImpl.java @@ -32,8 +32,8 @@ public class ConstructorDescriptorImpl extends FunctionDescriptorImpl implements return super.initialize(null, typeParameters, unsubstitutedValueParameters, unsubstitutedReturnType); } - public ConstructorDescriptor initialize(@NotNull List unsubstitutedValueParameters) { - super.initialize(null, Collections.emptyList(), unsubstitutedValueParameters, null); + public ConstructorDescriptorImpl initialize(@NotNull List typeParameters, @NotNull List unsubstitutedValueParameters) { + super.initialize(null, typeParameters, unsubstitutedValueParameters, null); return this; } @@ -59,12 +59,6 @@ public class ConstructorDescriptorImpl extends FunctionDescriptorImpl implements return isPrimary; } - @NotNull - @Override - public List getTypeParameters() { - return Collections.emptyList(); - } - @NotNull @Override public Set getOverriddenFunctions() { diff --git a/idea/src/org/jetbrains/jet/lang/descriptors/LazySubstitutingClassDescriptor.java b/idea/src/org/jetbrains/jet/lang/descriptors/LazySubstitutingClassDescriptor.java index 9c45cb6b4d3..4ebb5a6f46c 100644 --- a/idea/src/org/jetbrains/jet/lang/descriptors/LazySubstitutingClassDescriptor.java +++ b/idea/src/org/jetbrains/jet/lang/descriptors/LazySubstitutingClassDescriptor.java @@ -47,7 +47,7 @@ public class LazySubstitutingClassDescriptor implements ClassDescriptor { @NotNull @Override - public FunctionGroup getConstructors(List typeArguments) { + public FunctionGroup getConstructors() { throw new UnsupportedOperationException(); // TODO } diff --git a/idea/src/org/jetbrains/jet/lang/descriptors/MutableClassDescriptor.java b/idea/src/org/jetbrains/jet/lang/descriptors/MutableClassDescriptor.java index e6e7a91368c..cb49f537fae 100644 --- a/idea/src/org/jetbrains/jet/lang/descriptors/MutableClassDescriptor.java +++ b/idea/src/org/jetbrains/jet/lang/descriptors/MutableClassDescriptor.java @@ -66,8 +66,10 @@ public class MutableClassDescriptor extends MutableDeclarationDescriptor impleme public void addConstructor(@NotNull ConstructorDescriptor constructorDescriptor) { assert constructorDescriptor.getContainingDeclaration() == this; +// assert constructorDescriptor.getTypeParameters().size() == getTypeConstructor().getParameters().size(); constructors.addFunction(constructorDescriptor); if (defaultType != null) { +// constructorDescriptor.getTypeParameters().addAll(typeParameters); ((ConstructorDescriptorImpl) constructorDescriptor).setReturnType(getDefaultType()); } } @@ -154,6 +156,7 @@ public class MutableClassDescriptor extends MutableDeclarationDescriptor impleme supertypes); scopeForMemberResolution.setThisType(getDefaultType()); for (FunctionDescriptor functionDescriptor : constructors.getFunctionDescriptors()) { +// functionDescriptor.getTypeParameters().addAll(typeParameters); ((ConstructorDescriptorImpl) functionDescriptor).setReturnType(getDefaultType()); } } @@ -180,15 +183,16 @@ public class MutableClassDescriptor extends MutableDeclarationDescriptor impleme @NotNull @Override - public FunctionGroup getConstructors(List typeArguments) { + public FunctionGroup getConstructors() { // TODO : Duplicates ClassDescriptorImpl - assert typeArguments.size() == getTypeConstructor().getParameters().size(); +// assert typeArguments.size() == getTypeConstructor().getParameters().size(); - if (typeArguments.size() == 0) { - return constructors; - } - Map substitutionContext = TypeUtils.buildSubstitutionContext(getTypeConstructor().getParameters(), typeArguments); - return new LazySubstitutingFunctionGroup(TypeSubstitutor.create(substitutionContext), constructors); +// if (typeArguments.size() == 0) { +// return constructors; +// } +// Map substitutionContext = TypeUtils.buildSubstitutionContext(getTypeConstructor().getParameters(), typeArguments); +// return new LazySubstitutingFunctionGroup(TypeSubstitutor.create(substitutionContext), constructors); + return constructors; } @NotNull diff --git a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java index ba114905a93..1bdcf0d9376 100644 --- a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java +++ b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java @@ -22,7 +22,8 @@ public class JetExpressionParsing extends AbstractJetParsing { INTEGER_LITERAL, LONG_LITERAL, FLOAT_LITERAL, CHARACTER_LITERAL, STRING_LITERAL, RAW_STRING_LITERAL, NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, EXTENSION_KEYWORD, FOR_KEYWORD, NULL_KEYWORD, TYPEOF_KEYWORD, - NEW_KEYWORD, TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, +// NEW_KEYWORD, + TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD, TRY_KEYWORD, ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD, WHEN_KEYWORD, RBRACKET, RBRACE, RPAR, PLUSPLUS, MINUSMINUS, MUL, PLUS, MINUS, EXCL, DIV, PERC, LTEQ, // TODO GTEQ, foo=x @@ -54,7 +55,7 @@ public class JetExpressionParsing extends AbstractJetParsing { WHEN_KEYWORD, // when TRY_KEYWORD, // try TYPEOF_KEYWORD, // typeof - NEW_KEYWORD, // new +// NEW_KEYWORD, // new OBJECT_KEYWORD, // object // jump @@ -497,9 +498,9 @@ public class JetExpressionParsing extends AbstractJetParsing { else if (at(TYPEOF_KEYWORD)) { parseTypeOf(); } - else if (at(NEW_KEYWORD)) { - parseNew(); - } +// else if (at(NEW_KEYWORD)) { +// parseNew(); +// } else if (at(OBJECT_KEYWORD)) { parseObjectLiteral(); } @@ -1446,23 +1447,23 @@ public class JetExpressionParsing extends AbstractJetParsing { marker.done(THROW); } - /* - * "new" constructorInvocation // identical to new functionCall - * - * constructorInvocation - * : userType callSuffix - */ - private void parseNew() { - assert _at(NEW_KEYWORD); - - PsiBuilder.Marker creation = mark(); - advance(); // NEW_KEYWORD - - myJetParsing.parseTypeRef(); - parseCallSuffix(); - - creation.done(NEW); - } +// /* +// * "new" constructorInvocation // identical to new functionCall +// * +// * constructorInvocation +// * : userType callSuffix +// */ +// private void parseNew() { +// assert _at(NEW_KEYWORD); +// +// PsiBuilder.Marker creation = mark(); +// advance(); // NEW_KEYWORD +// +// myJetParsing.parseTypeRef(); +// parseCallSuffix(); +// +// creation.done(NEW); +// } /* * "typeof" "(" element ")" diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetDelegatorToSuperCall.java b/idea/src/org/jetbrains/jet/lang/psi/JetDelegatorToSuperCall.java index 301067299b0..aeaadecd8da 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetDelegatorToSuperCall.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetDelegatorToSuperCall.java @@ -41,6 +41,14 @@ public class JetDelegatorToSuperCall extends JetDelegationSpecifier implements J @NotNull @Override public List getTypeArguments() { + JetTypeReference typeReference = getTypeReference(); + if (typeReference != null) { + JetTypeElement typeElement = typeReference.getTypeElement(); + if (typeElement instanceof JetUserType) { + JetUserType userType = (JetUserType) typeElement; + return userType.getTypeArguments(); + } + } return Collections.emptyList(); } diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetNewExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetNewExpression.java index 94401715422..144e1ecfb0a 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetNewExpression.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetNewExpression.java @@ -1,60 +1,52 @@ package org.jetbrains.jet.lang.psi; -import com.intellij.lang.ASTNode; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.JetNodeTypes; - -import java.util.Collections; -import java.util.List; - /** * @author max */ -public class JetNewExpression extends JetExpression implements JetCall { - public JetNewExpression(@NotNull ASTNode node) { - super(node); - } - - @Override - public void accept(JetVisitor visitor) { - visitor.visitNewExpression(this); - } - - @Nullable @IfNotParsed - public JetTypeReference getTypeReference() { - return (JetTypeReference) findChildByType(JetNodeTypes.TYPE_REFERENCE); - } - - @Override - @Nullable - public JetArgumentList getValueArgumentList() { - return (JetArgumentList) findChildByType(JetNodeTypes.VALUE_ARGUMENT_LIST); - } - - @Override - @NotNull - public List getValueArguments() { - JetArgumentList list = getValueArgumentList(); - return list != null ? list.getArguments() : Collections.emptyList(); - } - - @Override - @NotNull - public List getFunctionLiteralArguments() { - return findChildrenByType(JetNodeTypes.FUNCTION_LITERAL); - } - - @NotNull - @Override - public List getTypeArguments() { - return Collections.emptyList(); - } - - @NotNull - @Override - public JetElement asElement() { - return this; - } - -} +//public class JetNewExpression extends JetExpression implements JetCall { +// public JetNewExpression(@NotNull ASTNode node) { +// super(node); +// } +// +// @Override +// public void accept(JetVisitor visitor) { +// visitor.visitNewExpression(this); +// } +// +// @Nullable @IfNotParsed +// public JetTypeReference getTypeReference() { +// return (JetTypeReference) findChildByType(JetNodeTypes.TYPE_REFERENCE); +// } +// +// @Override +// @Nullable +// public JetArgumentList getValueArgumentList() { +// return (JetArgumentList) findChildByType(JetNodeTypes.VALUE_ARGUMENT_LIST); +// } +// +// @Override +// @NotNull +// public List getValueArguments() { +// JetArgumentList list = getValueArgumentList(); +// return list != null ? list.getArguments() : Collections.emptyList(); +// } +// +// @Override +// @NotNull +// public List getFunctionLiteralArguments() { +// return findChildrenByType(JetNodeTypes.FUNCTION_LITERAL); +// } +// +// @NotNull +// @Override +// public List getTypeArguments() { +// return Collections.emptyList(); +// } +// +// @NotNull +// @Override +// public JetElement asElement() { +// return this; +// } +// +//} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java b/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java index 382b1dda657..80fbe7699fd 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java @@ -174,10 +174,10 @@ public class JetVisitor extends PsiElementVisitor { visitExpression(expression); } - public void visitNewExpression(JetNewExpression expression) { - visitExpression(expression); - } - +// public void visitNewExpression(JetNewExpression expression) { +// visitExpression(expression); +// } +// public void visitReturnExpression(JetReturnExpression expression) { visitLabelQualifiedExpression(expression); } diff --git a/idea/src/org/jetbrains/jet/lang/resolve/ClassDescriptorResolver.java b/idea/src/org/jetbrains/jet/lang/resolve/ClassDescriptorResolver.java index 9d28bd78dfd..3fc111e4325 100644 --- a/idea/src/org/jetbrains/jet/lang/resolve/ClassDescriptorResolver.java +++ b/idea/src/org/jetbrains/jet/lang/resolve/ClassDescriptorResolver.java @@ -96,21 +96,26 @@ public class ClassDescriptorResolver { } WritableFunctionGroup constructors = new WritableFunctionGroup(""); - for (JetConstructor constructor : classElement.getSecondaryConstructors()) { - constructors.addFunction(resolveSecondaryConstructorDescriptor(memberDeclarations, classDescriptor, constructor)); - } - ConstructorDescriptor primaryConstructorDescriptor = resolvePrimaryConstructorDescriptor(scope, classDescriptor, classElement); - if (primaryConstructorDescriptor != null) { - constructors.addFunction(primaryConstructorDescriptor); - } - return classDescriptor.initialize( + classDescriptor.initialize( !open, typeParameters, supertypes, memberDeclarations, constructors, - primaryConstructorDescriptor + null ); + for (JetConstructor constructor : classElement.getSecondaryConstructors()) { + ConstructorDescriptorImpl functionDescriptor = resolveSecondaryConstructorDescriptor(memberDeclarations, classDescriptor, constructor); + functionDescriptor.setReturnType(classDescriptor.getDefaultType()); + constructors.addFunction(functionDescriptor); + } + ConstructorDescriptorImpl primaryConstructorDescriptor = resolvePrimaryConstructorDescriptor(scope, classDescriptor, classElement); + if (primaryConstructorDescriptor != null) { + primaryConstructorDescriptor.setReturnType(classDescriptor.getDefaultType()); + constructors.addFunction(primaryConstructorDescriptor); + classDescriptor.setPrimaryConstructor(primaryConstructorDescriptor); + } + return classDescriptor; } public void resolveMutableClassDescriptor(@NotNull JetClass classElement, @NotNull MutableClassDescriptor descriptor) { @@ -616,18 +621,18 @@ public class ClassDescriptorResolver { } @NotNull - public ConstructorDescriptor resolveSecondaryConstructorDescriptor(@NotNull JetScope scope, @NotNull ClassDescriptor classDescriptor, @NotNull JetConstructor constructor) { - return createConstructorDescriptor(scope, classDescriptor, false, constructor.getModifierList(), constructor, constructor.getParameters()); + public ConstructorDescriptorImpl resolveSecondaryConstructorDescriptor(@NotNull JetScope scope, @NotNull ClassDescriptor classDescriptor, @NotNull JetConstructor constructor) { + return createConstructorDescriptor(scope, classDescriptor, false, constructor.getModifierList(), constructor, classDescriptor.getTypeConstructor().getParameters(), constructor.getParameters()); } @NotNull - private ConstructorDescriptor createConstructorDescriptor( + private ConstructorDescriptorImpl createConstructorDescriptor( @NotNull JetScope scope, @NotNull ClassDescriptor classDescriptor, boolean isPrimary, @Nullable JetModifierList modifierList, @NotNull JetDeclaration declarationToTrace, - @NotNull List valueParameters) { + List typeParameters, @NotNull List valueParameters) { ConstructorDescriptorImpl constructorDescriptor = new ConstructorDescriptorImpl( classDescriptor, AnnotationResolver.INSTANCE.resolveAnnotations(modifierList), @@ -635,6 +640,7 @@ public class ClassDescriptorResolver { ); trace.recordDeclarationResolution(declarationToTrace, constructorDescriptor); return constructorDescriptor.initialize( + typeParameters, resolveValueParameters( constructorDescriptor, new WritableScopeImpl(scope, classDescriptor, trace.getErrorHandler()), @@ -642,7 +648,7 @@ public class ClassDescriptorResolver { } @Nullable - public ConstructorDescriptor resolvePrimaryConstructorDescriptor(@NotNull JetScope scope, @NotNull ClassDescriptor classDescriptor, @NotNull JetClass classElement) { + public ConstructorDescriptorImpl resolvePrimaryConstructorDescriptor(@NotNull JetScope scope, @NotNull ClassDescriptor classDescriptor, @NotNull JetClass classElement) { if (!classElement.hasPrimaryConstructor()) return null; return createConstructorDescriptor( scope, @@ -650,7 +656,7 @@ public class ClassDescriptorResolver { true, classElement.getPrimaryConstructorModifierList(), classElement, - classElement.getPrimaryConstructorParameters()); + classDescriptor.getTypeConstructor().getParameters(), classElement.getPrimaryConstructorParameters()); } @NotNull diff --git a/idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java b/idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java index f29fc8e53e3..ae6c3940658 100644 --- a/idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java +++ b/idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java @@ -227,7 +227,7 @@ public class TopDownAnalyzer { private void createPrimaryConstructor(MutableClassDescriptor mutableClassDescriptor) { ConstructorDescriptorImpl constructorDescriptor = new ConstructorDescriptorImpl(mutableClassDescriptor, Collections.emptyList(), true); - constructorDescriptor.initialize(Collections.emptyList()); + constructorDescriptor.initialize(Collections.emptyList(), Collections.emptyList()); // TODO : make the constructor private? mutableClassDescriptor.setPrimaryConstructor(constructorDescriptor); } diff --git a/idea/src/org/jetbrains/jet/lang/resolve/WritableScopeImpl.java b/idea/src/org/jetbrains/jet/lang/resolve/WritableScopeImpl.java index 9bcf33e9060..dda7b6ce4c6 100644 --- a/idea/src/org/jetbrains/jet/lang/resolve/WritableScopeImpl.java +++ b/idea/src/org/jetbrains/jet/lang/resolve/WritableScopeImpl.java @@ -146,9 +146,30 @@ public class WritableScopeImpl extends WritableScopeWithImports { @NotNull public FunctionGroup getFunctionGroup(@NotNull String name) { FunctionGroup functionGroup = getFunctionGroups().get(name); + FunctionGroup constructors = null; + ClassifierDescriptor classifier = getClassifier(name); + if (classifier instanceof ClassDescriptor) { + ClassDescriptor classDescriptor = (ClassDescriptor) classifier; + constructors = classDescriptor.getConstructors(); + } if (functionGroup != null && !functionGroup.isEmpty()) { + if (constructors != null) { + WritableFunctionGroup result = new WritableFunctionGroup(name); + for (FunctionDescriptor functionDescriptor : functionGroup.getFunctionDescriptors()) { + result.addFunction(functionDescriptor); + } + for (FunctionDescriptor functionDescriptor : constructors.getFunctionDescriptors()) { + result.addFunction(functionDescriptor); + } + return result; + } return functionGroup; } + + if (constructors != null && !constructors.isEmpty()) { + return constructors; + } + // TODO : this logic is questionable functionGroup = getWorkerScope().getFunctionGroup(name); if (!functionGroup.isEmpty()) return functionGroup; diff --git a/idea/src/org/jetbrains/jet/lang/resolve/java/JavaClassDescriptor.java b/idea/src/org/jetbrains/jet/lang/resolve/java/JavaClassDescriptor.java index 30b69267b8e..a3ce03a10b1 100644 --- a/idea/src/org/jetbrains/jet/lang/resolve/java/JavaClassDescriptor.java +++ b/idea/src/org/jetbrains/jet/lang/resolve/java/JavaClassDescriptor.java @@ -69,10 +69,11 @@ public class JavaClassDescriptor extends MutableDeclarationDescriptor implements @NotNull @Override - public FunctionGroup getConstructors(List typeArguments) { - assert typeArguments.size() == typeConstructor.getParameters().size(); - if (typeArguments.isEmpty()) return constructors; - return new LazySubstitutingFunctionGroup(createTypeSubstitutor(typeArguments), constructors); + public FunctionGroup getConstructors() { +// assert typeArguments.size() == typeConstructor.getParameters().size(); +// if (typeArguments.isEmpty()) return constructors; +// return new LazySubstitutingFunctionGroup(createTypeSubstitutor(typeArguments), constructors); + return constructors; } @Override diff --git a/idea/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/idea/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index 21136db418b..5829a62c224 100644 --- a/idea/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/idea/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -92,13 +92,14 @@ public class JavaDescriptorResolver { classDescriptor.setName(name); List supertypes = new ArrayList(); + List typeParameters = resolveTypeParameters(classDescriptor, psiClass.getTypeParameters()); classDescriptor.setTypeConstructor(new TypeConstructorImpl( classDescriptor, Collections.emptyList(), // TODO // TODO psiClass.hasModifierProperty(PsiModifier.FINAL), name, - resolveTypeParameters(classDescriptor, psiClass.getTypeParameters()), + typeParameters, supertypes )); @@ -116,7 +117,7 @@ public class JavaDescriptorResolver { classDescriptor, Collections.emptyList(), false); - constructorDescriptor.initialize(Collections.emptyList()); + constructorDescriptor.initialize(typeParameters, Collections.emptyList()); constructorDescriptor.setReturnType(classDescriptor.getDefaultType()); classDescriptor.addConstructor(constructorDescriptor); semanticServices.getTrace().recordDeclarationResolution(psiClass, constructorDescriptor); @@ -128,7 +129,7 @@ public class JavaDescriptorResolver { classDescriptor, Collections.emptyList(), // TODO false); - constructorDescriptor.initialize(resolveParameterDescriptors(constructorDescriptor, constructor.getParameterList().getParameters())); + constructorDescriptor.initialize(typeParameters, resolveParameterDescriptors(constructorDescriptor, constructor.getParameterList().getParameters())); constructorDescriptor.setReturnType(classDescriptor.getDefaultType()); classDescriptor.addConstructor(constructorDescriptor); semanticServices.getTrace().recordDeclarationResolution(constructor, constructorDescriptor); diff --git a/idea/src/org/jetbrains/jet/lang/resolve/java/JavaPackageScope.java b/idea/src/org/jetbrains/jet/lang/resolve/java/JavaPackageScope.java index 851819057db..d1743442346 100644 --- a/idea/src/org/jetbrains/jet/lang/resolve/java/JavaPackageScope.java +++ b/idea/src/org/jetbrains/jet/lang/resolve/java/JavaPackageScope.java @@ -1,10 +1,8 @@ package org.jetbrains.jet.lang.resolve.java; import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.resolve.JetScopeImpl; -import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor; -import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; -import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; /** * @author abreslav @@ -31,6 +29,17 @@ public class JavaPackageScope extends JetScopeImpl { return semanticServices.getDescriptorResolver().resolveNamespace(getQualifiedName(name)); } + @NotNull + @Override + public FunctionGroup getFunctionGroup(@NotNull String name) { + ClassifierDescriptor classifier = getClassifier(name); + if (classifier instanceof ClassDescriptor) { + ClassDescriptor classDescriptor = (ClassDescriptor) classifier; + return classDescriptor.getConstructors(); + } + return FunctionGroup.EMPTY; + } + @NotNull @Override public DeclarationDescriptor getContainingDeclaration() { diff --git a/idea/src/org/jetbrains/jet/lang/types/ErrorUtils.java b/idea/src/org/jetbrains/jet/lang/types/ErrorUtils.java index b2be863254a..041c8690d50 100644 --- a/idea/src/org/jetbrains/jet/lang/types/ErrorUtils.java +++ b/idea/src/org/jetbrains/jet/lang/types/ErrorUtils.java @@ -95,7 +95,7 @@ public class ErrorUtils { private static final ClassDescriptorImpl ERROR_CLASS = new ClassDescriptorImpl(ERROR_MODULE, Collections.emptyList(), "") { @NotNull @Override - public FunctionGroup getConstructors(List typeArguments) { + public FunctionGroup getConstructors() { return ERROR_FUNCTION_GROUP; } }; diff --git a/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java b/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java index 045257db637..1b08db2e8ab 100644 --- a/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java +++ b/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java @@ -553,7 +553,7 @@ public class JetTypeInferrer { projectionsStripped.add(typeArgument); } - FunctionGroup constructors = classDescriptor.getConstructors(projectionsStripped); + FunctionGroup constructors = classDescriptor.getConstructors(); OverloadDomain constructorsOverloadDomain = semanticServices.getOverloadResolver().getOverloadDomain(null, constructors); JetType constructorReturnedType = resolveCall( scope, @@ -1691,14 +1691,14 @@ public class JetTypeInferrer { return true; } - @Override - public void visitNewExpression(JetNewExpression expression) { - // TODO : type argument inference - JetTypeReference typeReference = expression.getTypeReference(); - if (typeReference != null) { - result = checkConstructorCall(scope, typeReference, expression); - } - } +// @Override +// public void visitNewExpression(JetNewExpression expression) { +// // TODO : type argument inference +// JetTypeReference typeReference = expression.getTypeReference(); +// if (typeReference != null) { +// result = checkConstructorCall(scope, typeReference, expression); +// } +// } @Override public void visitHashQualifiedExpression(JetHashQualifiedExpression expression) { diff --git a/idea/src/org/jetbrains/jet/lang/types/TypeUtils.java b/idea/src/org/jetbrains/jet/lang/types/TypeUtils.java index 2b59fd9740a..327a064e7df 100644 --- a/idea/src/org/jetbrains/jet/lang/types/TypeUtils.java +++ b/idea/src/org/jetbrains/jet/lang/types/TypeUtils.java @@ -177,7 +177,7 @@ public class TypeUtils { @NotNull public static JetType makeUnsubstitutedType(ClassDescriptor classDescriptor, JetScope unsubstitutedMemberScope) { - List arguments = getArguments(classDescriptor); + List arguments = getDefaultArguments(classDescriptor.getTypeConstructor().getParameters()); return new JetTypeImpl( Collections.emptyList(), classDescriptor.getTypeConstructor(), @@ -188,9 +188,9 @@ public class TypeUtils { } @NotNull - private static List getArguments(@NotNull ClassDescriptor classDescriptor) { + public static List getDefaultArguments(List parameters) { List result = new ArrayList(); - for (TypeParameterDescriptor parameterDescriptor : classDescriptor.getTypeConstructor().getParameters()) { + for (TypeParameterDescriptor parameterDescriptor : parameters) { result.add(new TypeProjection(parameterDescriptor.getDefaultType())); } return result; diff --git a/idea/src/org/jetbrains/jet/lexer/Jet.flex b/idea/src/org/jetbrains/jet/lexer/Jet.flex index cbfb33109cd..c9dca68f6d0 100644 --- a/idea/src/org/jetbrains/jet/lexer/Jet.flex +++ b/idea/src/org/jetbrains/jet/lexer/Jet.flex @@ -114,7 +114,7 @@ RAW_STRING_LITERAL = {THREE_QUO} {QUO_STRING_CHAR}* {THREE_QUO}? "var" { return JetTokens.VAR_KEYWORD ;} "fun" { return JetTokens.FUN_KEYWORD ;} "for" { return JetTokens.FOR_KEYWORD ;} - "new" { return JetTokens.NEW_KEYWORD ;} +// "new" { return JetTokens.NEW_KEYWORD ;} "is" { return JetTokens.IS_KEYWORD ;} "in" { return JetTokens.IN_KEYWORD ;} "if" { return JetTokens.IF_KEYWORD ;} diff --git a/idea/src/org/jetbrains/jet/lexer/JetTokens.java b/idea/src/org/jetbrains/jet/lexer/JetTokens.java index d93bda8d827..4fd4edb52c6 100644 --- a/idea/src/org/jetbrains/jet/lexer/JetTokens.java +++ b/idea/src/org/jetbrains/jet/lexer/JetTokens.java @@ -35,7 +35,7 @@ public interface JetTokens { JetKeywordToken FOR_KEYWORD = JetKeywordToken.keyword("for"); JetKeywordToken NULL_KEYWORD = JetKeywordToken.keyword("null"); JetKeywordToken TYPEOF_KEYWORD = JetKeywordToken.keyword("typeof"); - JetKeywordToken NEW_KEYWORD = JetKeywordToken.keyword("new"); +// JetKeywordToken NEW_KEYWORD = JetKeywordToken.keyword("new"); JetKeywordToken TRUE_KEYWORD = JetKeywordToken.keyword("true"); JetKeywordToken FALSE_KEYWORD = JetKeywordToken.keyword("false"); JetKeywordToken IS_KEYWORD = JetKeywordToken.keyword("is"); @@ -139,7 +139,9 @@ public interface JetTokens { TokenSet KEYWORDS = TokenSet.create(NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, EXTENSION_KEYWORD, FOR_KEYWORD, - NULL_KEYWORD, TYPEOF_KEYWORD, NEW_KEYWORD, TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, + NULL_KEYWORD, TYPEOF_KEYWORD, +// NEW_KEYWORD, + TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, IN_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD, ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD, TRY_KEYWORD, WHEN_KEYWORD, NOT_IN, NOT_IS, CAPITALIZED_THIS_KEYWORD diff --git a/idea/src/org/jetbrains/jet/lexer/_JetLexer.java b/idea/src/org/jetbrains/jet/lexer/_JetLexer.java index 0a081672c29..9df7d3dbddb 100644 --- a/idea/src/org/jetbrains/jet/lexer/_JetLexer.java +++ b/idea/src/org/jetbrains/jet/lexer/_JetLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.3 on 4/8/11 3:38 PM */ +/* The following code was generated by JFlex 1.4.3 on 6/15/11 2:54 PM */ /* It's an automatically generated code. Do not modify it. */ package org.jetbrains.jet.lexer; @@ -13,7 +13,7 @@ import org.jetbrains.jet.lexer.JetTokens; /** * This class is a scanner generated by * JFlex 1.4.3 - * on 4/8/11 3:38 PM from the specification file + * on 6/15/11 2:54 PM from the specification file * /Users/abreslav/work/jet/idea/src/org/jetbrains/jet/lexer/Jet.flex */ class _JetLexer implements FlexLexer { @@ -145,21 +145,20 @@ class _JetLexer implements FlexLexer { "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32"+ "\1\33\1\34\1\0\1\35\1\0\1\36\1\0\1\37"+ "\1\0\1\40\1\41\1\42\1\43\1\44\1\35\2\2"+ - "\1\35\1\45\1\46\1\47\1\50\2\12\3\13\3\3"+ + "\1\35\1\45\1\46\1\47\1\50\2\12\3\13\2\3"+ "\1\51\7\3\1\52\1\53\1\54\11\3\1\55\1\56"+ "\1\57\1\0\1\60\1\61\1\62\1\63\1\64\1\65"+ "\1\66\1\67\1\70\1\71\1\72\1\35\1\3\2\0"+ - "\1\42\1\73\4\0\1\13\1\74\1\3\1\75\1\3"+ - "\1\76\5\3\1\77\6\3\1\100\1\101\4\3\1\102"+ - "\1\103\1\104\1\105\1\106\1\107\1\36\1\37\1\0"+ - "\2\73\1\35\2\0\1\3\1\110\1\3\1\111\2\3"+ - "\1\112\1\113\1\114\5\3\1\115\1\3\1\116\1\42"+ - "\2\0\3\3\1\117\1\3\1\120\2\3\1\121\1\122"+ - "\1\123\1\74\3\3\1\124\1\125\1\126\5\3\1\127"+ - "\1\130\1\131"; + "\1\42\1\73\4\0\1\13\1\74\2\3\1\75\5\3"+ + "\1\76\6\3\1\77\1\100\4\3\1\101\1\102\1\103"+ + "\1\104\1\105\1\106\1\36\1\37\1\0\2\73\1\35"+ + "\2\0\1\3\1\107\1\3\1\110\2\3\1\111\1\112"+ + "\1\113\5\3\1\114\1\3\1\115\1\42\2\0\3\3"+ + "\1\116\1\3\1\117\2\3\1\120\1\121\1\122\1\74"+ + "\3\3\1\123\1\124\1\125\5\3\1\126\1\127\1\130"; private static int [] zzUnpackAction() { - int [] result = new int[205]; + int [] result = new int[203]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -194,25 +193,25 @@ class _JetLexer implements FlexLexer { "\0\u0b6d\0\u0bae\0\101\0\101\0\u0bef\0\u0c30\0\u0c71\0\u0cb2"+ "\0\101\0\101\0\101\0\101\0\101\0\u0cf3\0\u0d34\0\u0d75"+ "\0\u0db6\0\u0df7\0\u0e38\0\u0e79\0\u0eba\0\u0efb\0\u0f3c\0\u0f7d"+ - "\0\u0fbe\0\u0fff\0\u1040\0\u1081\0\303\0\303\0\303\0\u10c2"+ - "\0\u1103\0\u1144\0\u1185\0\u11c6\0\u1207\0\u1248\0\u1289\0\u12ca"+ - "\0\303\0\u130b\0\101\0\u134c\0\u138d\0\101\0\101\0\101"+ - "\0\101\0\101\0\101\0\101\0\101\0\101\0\101\0\u13ce"+ - "\0\101\0\u140f\0\u1450\0\u1491\0\u14d2\0\u1513\0\u1554\0\u1595"+ - "\0\u15d6\0\101\0\u1617\0\u1658\0\303\0\u1699\0\101\0\u16da"+ - "\0\u171b\0\u175c\0\u179d\0\u17de\0\303\0\u181f\0\u1860\0\u18a1"+ - "\0\u18e2\0\u1923\0\u1964\0\303\0\303\0\u19a5\0\u19e6\0\u1a27"+ - "\0\u1a68\0\303\0\303\0\101\0\101\0\101\0\101\0\101"+ - "\0\101\0\u1aa9\0\u1aea\0\101\0\u1b2b\0\u13ce\0\u1b6c\0\u1bad"+ - "\0\303\0\u1bee\0\303\0\u1c2f\0\u1c70\0\303\0\u1cb1\0\303"+ - "\0\u1cf2\0\u1d33\0\u1d74\0\u1db5\0\u1df6\0\303\0\u1e37\0\303"+ - "\0\101\0\u1e78\0\u1eb9\0\u1efa\0\u1f3b\0\u1f7c\0\303\0\u1fbd"+ - "\0\303\0\u1ffe\0\u203f\0\303\0\303\0\303\0\101\0\u2080"+ - "\0\u20c1\0\u2102\0\303\0\303\0\303\0\u2143\0\u2184\0\u21c5"+ - "\0\u2206\0\u2247\0\303\0\303\0\303"; + "\0\u0fbe\0\u0fff\0\u1040\0\303\0\303\0\303\0\u1081\0\u10c2"+ + "\0\u1103\0\u1144\0\u1185\0\u11c6\0\u1207\0\u1248\0\u1289\0\303"+ + "\0\u12ca\0\101\0\u130b\0\u134c\0\101\0\101\0\101\0\101"+ + "\0\101\0\101\0\101\0\101\0\101\0\101\0\u138d\0\101"+ + "\0\u13ce\0\u140f\0\u1450\0\u1491\0\u14d2\0\u1513\0\u1554\0\u1595"+ + "\0\101\0\u15d6\0\u1617\0\u1658\0\101\0\u1699\0\u16da\0\u171b"+ + "\0\u175c\0\u179d\0\303\0\u17de\0\u181f\0\u1860\0\u18a1\0\u18e2"+ + "\0\u1923\0\303\0\303\0\u1964\0\u19a5\0\u19e6\0\u1a27\0\303"+ + "\0\303\0\101\0\101\0\101\0\101\0\101\0\101\0\u1a68"+ + "\0\u1aa9\0\101\0\u1aea\0\u138d\0\u1b2b\0\u1b6c\0\303\0\u1bad"+ + "\0\303\0\u1bee\0\u1c2f\0\303\0\u1c70\0\303\0\u1cb1\0\u1cf2"+ + "\0\u1d33\0\u1d74\0\u1db5\0\303\0\u1df6\0\303\0\101\0\u1e37"+ + "\0\u1e78\0\u1eb9\0\u1efa\0\u1f3b\0\303\0\u1f7c\0\303\0\u1fbd"+ + "\0\u1ffe\0\303\0\303\0\303\0\101\0\u203f\0\u2080\0\u20c1"+ + "\0\303\0\303\0\303\0\u2102\0\u2143\0\u2184\0\u21c5\0\u2206"+ + "\0\303\0\303\0\303"; private static int [] zzUnpackRowMap() { - int [] result = new int[205]; + int [] result = new int[203]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -259,200 +258,198 @@ class _JetLexer implements FlexLexer { "\15\0\13\16\1\0\7\16\1\105\1\106\54\16\13\107"+ "\1\0\10\107\1\110\1\111\53\107\1\0\2\4\1\0"+ "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ - "\1\4\3\0\1\4\1\112\1\4\1\113\7\4\1\114"+ - "\14\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ - "\3\4\1\0\1\4\1\0\1\4\3\0\4\4\1\115"+ - "\23\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ - "\3\4\1\0\1\4\1\0\1\4\3\0\7\4\1\116"+ - "\13\4\1\117\4\4\24\0\2\4\1\0\2\4\1\0"+ + "\1\4\3\0\1\4\1\112\11\4\1\113\14\4\24\0"+ + "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ + "\1\4\1\0\1\4\3\0\4\4\1\114\23\4\24\0"+ + "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ + "\1\4\1\0\1\4\3\0\7\4\1\115\13\4\1\116"+ + "\4\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ + "\3\4\1\0\1\4\1\0\1\4\3\0\12\4\1\117"+ + "\10\4\1\120\4\4\24\0\2\4\1\0\2\4\1\0"+ "\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ - "\12\4\1\120\10\4\1\121\4\4\24\0\2\4\1\0"+ - "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ - "\1\4\3\0\14\4\1\122\1\123\4\4\1\124\5\4"+ - "\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+ - "\1\0\1\4\1\0\1\4\3\0\1\125\3\4\1\126"+ - "\11\4\1\127\11\4\24\0\2\4\1\0\2\4\1\0"+ + "\14\4\1\121\1\122\4\4\1\123\5\4\24\0\2\4"+ + "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ + "\1\0\1\4\3\0\1\124\3\4\1\125\11\4\1\126"+ + "\11\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ + "\3\4\1\0\1\4\1\0\1\4\3\0\17\4\1\127"+ + "\10\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ + "\3\4\1\0\1\4\1\0\1\4\3\0\3\4\1\130"+ + "\24\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ + "\3\4\1\0\1\4\1\0\1\4\3\0\1\4\1\131"+ + "\10\4\1\132\1\133\14\4\24\0\2\4\1\0\2\4"+ + "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ + "\3\0\14\4\1\134\13\4\24\0\2\4\1\0\2\4"+ + "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ + "\3\0\22\4\1\135\5\4\24\0\2\4\1\0\2\4"+ + "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ + "\3\0\22\4\1\136\5\4\24\0\2\4\1\0\2\4"+ + "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ + "\3\0\1\4\1\137\26\4\24\0\2\4\1\0\2\4"+ + "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ + "\3\0\12\4\1\140\15\4\101\0\1\141\4\0\1\142"+ + "\54\0\1\143\16\0\1\144\41\0\1\145\46\0\1\146"+ + "\70\0\1\147\2\0\1\150\75\0\1\151\100\0\1\152"+ + "\106\0\1\153\101\0\1\154\71\0\1\155\23\0\1\100"+ + "\12\0\1\100\2\0\1\156\62\0\1\157\12\0\1\157"+ + "\4\0\1\157\37\0\1\157\20\0\2\63\1\0\2\63"+ + "\1\160\1\63\4\0\3\63\1\0\1\63\1\0\1\63"+ + "\3\0\30\63\24\0\2\64\1\0\2\64\1\0\1\64"+ + "\4\0\3\64\1\0\1\64\1\0\1\64\3\0\30\64"+ + "\25\0\1\161\1\0\1\161\2\0\1\161\5\0\2\161"+ + "\1\0\1\161\1\0\1\161\3\0\30\161\24\0\2\66"+ + "\1\0\2\66\1\0\1\66\4\0\3\66\1\0\1\66"+ + "\1\0\1\66\3\0\30\66\25\0\1\162\1\0\1\162"+ + "\2\0\1\162\5\0\2\162\1\0\1\162\1\0\1\162"+ + "\3\0\30\162\23\0\13\71\1\0\65\71\12\163\1\164"+ + "\66\163\1\0\1\75\12\0\1\75\2\0\1\165\1\62"+ + "\10\0\1\62\50\0\2\76\11\0\1\76\1\0\1\76"+ + "\1\166\1\76\1\0\1\167\4\0\1\76\1\0\1\76"+ + "\1\0\1\167\1\76\7\0\2\76\7\0\1\76\24\0"+ + "\1\77\12\0\1\77\2\0\1\170\62\0\1\100\12\0"+ + "\1\100\3\0\1\62\10\0\1\62\47\0\13\16\1\0"+ + "\65\16\13\107\1\0\10\107\1\110\1\171\66\107\1\0"+ + "\65\107\25\0\1\172\54\0\2\4\1\0\2\4\1\0"+ "\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ - "\17\4\1\130\10\4\24\0\2\4\1\0\2\4\1\0"+ + "\2\4\1\173\25\4\24\0\2\4\1\0\2\4\1\0"+ "\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ - "\3\4\1\131\24\4\24\0\2\4\1\0\2\4\1\0"+ + "\23\4\1\174\4\4\24\0\2\4\1\0\2\4\1\0"+ "\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ - "\1\4\1\132\10\4\1\133\1\134\14\4\24\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\14\4\1\135\13\4\24\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\22\4\1\136\5\4\24\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\22\4\1\137\5\4\24\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\1\4\1\140\26\4\24\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\12\4\1\141\15\4\101\0\1\142"+ - "\4\0\1\143\54\0\1\144\16\0\1\145\41\0\1\146"+ - "\46\0\1\147\70\0\1\150\2\0\1\151\75\0\1\152"+ - "\100\0\1\153\106\0\1\154\101\0\1\155\71\0\1\156"+ - "\23\0\1\100\12\0\1\100\2\0\1\157\62\0\1\160"+ - "\12\0\1\160\4\0\1\160\37\0\1\160\20\0\2\63"+ - "\1\0\2\63\1\161\1\63\4\0\3\63\1\0\1\63"+ - "\1\0\1\63\3\0\30\63\24\0\2\64\1\0\2\64"+ - "\1\0\1\64\4\0\3\64\1\0\1\64\1\0\1\64"+ - "\3\0\30\64\25\0\1\162\1\0\1\162\2\0\1\162"+ - "\5\0\2\162\1\0\1\162\1\0\1\162\3\0\30\162"+ - "\24\0\2\66\1\0\2\66\1\0\1\66\4\0\3\66"+ - "\1\0\1\66\1\0\1\66\3\0\30\66\25\0\1\163"+ - "\1\0\1\163\2\0\1\163\5\0\2\163\1\0\1\163"+ - "\1\0\1\163\3\0\30\163\23\0\13\71\1\0\65\71"+ - "\12\164\1\165\66\164\1\0\1\75\12\0\1\75\2\0"+ - "\1\166\1\62\10\0\1\62\50\0\2\76\11\0\1\76"+ - "\1\0\1\76\1\167\1\76\1\0\1\170\4\0\1\76"+ - "\1\0\1\76\1\0\1\170\1\76\7\0\2\76\7\0"+ - "\1\76\24\0\1\77\12\0\1\77\2\0\1\171\62\0"+ - "\1\100\12\0\1\100\3\0\1\62\10\0\1\62\47\0"+ - "\13\16\1\0\65\16\13\107\1\0\10\107\1\110\1\172"+ - "\66\107\1\0\65\107\25\0\1\173\54\0\2\4\1\0"+ - "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ - "\1\4\3\0\2\4\1\174\25\4\24\0\2\4\1\0"+ - "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ - "\1\4\3\0\21\4\1\175\6\4\24\0\2\4\1\0"+ - "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ - "\1\4\3\0\23\4\1\176\4\4\24\0\2\4\1\0"+ - "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ - "\1\4\3\0\30\4\2\0\1\177\21\0\2\4\1\0"+ - "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ - "\1\4\3\0\10\4\1\200\17\4\24\0\2\4\1\0"+ - "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ - "\1\4\3\0\4\4\1\201\23\4\24\0\2\4\1\0"+ - "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ - "\1\4\3\0\1\202\27\4\24\0\2\4\1\0\2\4"+ + "\30\4\2\0\1\175\21\0\2\4\1\0\2\4\1\0"+ + "\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ + "\10\4\1\176\17\4\24\0\2\4\1\0\2\4\1\0"+ + "\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ + "\4\4\1\177\23\4\24\0\2\4\1\0\2\4\1\0"+ + "\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ + "\1\200\27\4\24\0\2\4\1\0\2\4\1\0\1\4"+ + "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\1\4"+ + "\1\201\26\4\24\0\2\4\1\0\2\4\1\0\1\4"+ + "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\13\4"+ + "\1\202\1\4\1\203\12\4\24\0\2\4\1\0\2\4"+ "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ - "\3\0\1\4\1\203\26\4\24\0\2\4\1\0\2\4"+ + "\3\0\5\4\1\204\22\4\24\0\2\4\1\0\2\4"+ "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ - "\3\0\13\4\1\204\1\4\1\205\12\4\24\0\2\4"+ + "\3\0\11\4\1\205\2\4\1\206\13\4\24\0\2\4"+ "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\5\4\1\206\22\4\24\0\2\4"+ + "\1\0\1\4\3\0\20\4\1\207\7\4\24\0\2\4"+ "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\11\4\1\207\2\4\1\210\13\4"+ - "\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+ - "\1\0\1\4\1\0\1\4\3\0\20\4\1\211\7\4"+ - "\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+ - "\1\0\1\4\1\0\1\4\3\0\10\4\1\212\17\4"+ - "\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+ - "\1\0\1\4\1\0\1\4\3\0\23\4\1\213\4\4"+ - "\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+ - "\1\0\1\4\1\0\1\4\3\0\14\4\1\214\13\4"+ - "\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+ - "\1\0\1\4\1\0\1\4\3\0\1\215\27\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\3\4\1\216\24\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\3\4\1\217\5\4\1\220"+ - "\16\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ - "\3\4\1\0\1\4\1\0\1\4\3\0\11\4\1\221"+ - "\16\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ - "\3\4\1\0\1\4\1\0\1\4\3\0\14\4\1\222"+ - "\6\4\1\223\4\4\101\0\1\224\50\0\1\225\3\0"+ - "\1\226\124\0\1\227\23\0\1\160\12\0\1\160\65\0"+ - "\2\162\1\0\2\162\1\230\1\162\4\0\3\162\1\0"+ - "\1\162\1\0\1\162\3\0\30\162\24\0\2\163\1\0"+ - "\2\163\1\231\1\163\4\0\3\163\1\0\1\163\1\0"+ - "\1\163\3\0\30\163\23\0\12\164\1\232\66\164\11\233"+ - "\1\234\1\165\66\233\1\0\1\100\12\0\1\100\65\0"+ - "\2\235\11\0\1\235\1\0\1\235\1\157\1\235\6\0"+ - "\1\235\1\0\1\235\2\0\1\235\7\0\2\235\7\0"+ - "\1\235\24\0\1\160\12\0\1\160\4\0\1\236\37\0"+ - "\1\236\36\0\1\157\61\0\25\173\1\237\53\173\1\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\3\4\1\240\24\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\23\4\1\241\4\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\3\4\1\242\24\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\3\4\1\243\24\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\10\4\1\244\17\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\4\4\1\245\23\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\3\4\1\246\24\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\3\4\1\247\24\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\4\4\1\250\23\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\12\4\1\251\15\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\3\4\1\252\24\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\13\4\1\253\14\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\4\4\1\254\23\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\1\4\1\255\26\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\1\256\27\4\24\0\2\4"+ + "\1\0\1\4\3\0\10\4\1\210\17\4\24\0\2\4"+ "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\23\4\1\257\4\4\24\0\2\4"+ + "\1\0\1\4\3\0\23\4\1\211\4\4\24\0\2\4"+ "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\4\4\1\260\23\4\23\0\11\164"+ - "\1\261\1\232\66\164\12\233\1\262\66\233\1\0\2\235"+ - "\11\0\1\235\1\0\1\235\1\0\1\235\1\0\1\170"+ - "\4\0\1\235\1\0\1\235\1\0\1\170\1\235\7\0"+ - "\2\235\7\0\1\235\23\0\25\173\1\263\53\173\1\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\4\4\1\264\23\4\24\0"+ - "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ - "\1\4\1\0\1\4\3\0\1\265\27\4\24\0\2\4"+ + "\1\0\1\4\3\0\14\4\1\212\13\4\24\0\2\4"+ "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\11\4\1\266\16\4\24\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\4\4\1\267\23\4\24\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\12\4\1\270\15\4\24\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\21\4\1\271\6\4\24\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\6\4\1\272\21\4\24\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\14\4\1\273\13\4\24\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\3\4\1\274\24\4\24\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\24\4\1\275\3\4\24\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\3\4\1\276\24\4\23\0\11\233"+ - "\1\234\1\262\66\233\25\173\1\277\53\173\1\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\5\4\1\300\22\4\24\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\4\4\1\301\23\4\24\0\2\4"+ - "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+ - "\1\0\1\4\3\0\1\302\27\4\24\0\2\4\1\0"+ + "\1\0\1\4\3\0\1\213\27\4\24\0\2\4\1\0"+ "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ - "\1\4\3\0\16\4\1\303\11\4\24\0\2\4\1\0"+ + "\1\4\3\0\3\4\1\214\24\4\24\0\2\4\1\0"+ "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ - "\1\4\3\0\10\4\1\304\17\4\24\0\2\4\1\0"+ + "\1\4\3\0\3\4\1\215\5\4\1\216\16\4\24\0"+ + "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ + "\1\4\1\0\1\4\3\0\11\4\1\217\16\4\24\0"+ + "\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ + "\1\4\1\0\1\4\3\0\14\4\1\220\6\4\1\221"+ + "\4\4\101\0\1\222\50\0\1\223\3\0\1\224\124\0"+ + "\1\225\23\0\1\157\12\0\1\157\65\0\2\161\1\0"+ + "\2\161\1\226\1\161\4\0\3\161\1\0\1\161\1\0"+ + "\1\161\3\0\30\161\24\0\2\162\1\0\2\162\1\227"+ + "\1\162\4\0\3\162\1\0\1\162\1\0\1\162\3\0"+ + "\30\162\23\0\12\163\1\230\66\163\11\231\1\232\1\164"+ + "\66\231\1\0\1\100\12\0\1\100\65\0\2\233\11\0"+ + "\1\233\1\0\1\233\1\156\1\233\6\0\1\233\1\0"+ + "\1\233\2\0\1\233\7\0\2\233\7\0\1\233\24\0"+ + "\1\157\12\0\1\157\4\0\1\234\37\0\1\234\36\0"+ + "\1\156\61\0\25\172\1\235\53\172\1\0\2\4\1\0"+ "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ - "\1\4\3\0\1\305\27\4\24\0\2\4\1\0\2\4"+ + "\1\4\3\0\3\4\1\236\24\4\24\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\23\4\1\237\4\4\24\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\3\4\1\240\24\4\24\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\3\4\1\241\24\4\24\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\10\4\1\242\17\4\24\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\4\4\1\243\23\4\24\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\3\4\1\244\24\4\24\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\3\4\1\245\24\4\24\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\4\4\1\246\23\4\24\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\12\4\1\247\15\4\24\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\3\4\1\250\24\4\24\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\13\4\1\251\14\4\24\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\4\4\1\252\23\4\24\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\1\4\1\253\26\4\24\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\1\254\27\4\24\0\2\4\1\0\2\4"+ "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ - "\3\0\1\4\1\306\26\4\24\0\2\4\1\0\2\4"+ + "\3\0\23\4\1\255\4\4\24\0\2\4\1\0\2\4"+ "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ - "\3\0\11\4\1\307\16\4\24\0\2\4\1\0\2\4"+ + "\3\0\4\4\1\256\23\4\23\0\11\163\1\257\1\230"+ + "\66\163\12\231\1\260\66\231\1\0\2\233\11\0\1\233"+ + "\1\0\1\233\1\0\1\233\1\0\1\167\4\0\1\233"+ + "\1\0\1\233\1\0\1\167\1\233\7\0\2\233\7\0"+ + "\1\233\23\0\25\172\1\261\53\172\1\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\4\4\1\262\23\4\24\0\2\4\1\0"+ + "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ + "\1\4\3\0\1\263\27\4\24\0\2\4\1\0\2\4"+ "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ - "\3\0\13\4\1\310\14\4\24\0\2\4\1\0\2\4"+ + "\3\0\11\4\1\264\16\4\24\0\2\4\1\0\2\4"+ "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ - "\3\0\6\4\1\311\21\4\24\0\2\4\1\0\2\4"+ + "\3\0\4\4\1\265\23\4\24\0\2\4\1\0\2\4"+ "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ - "\3\0\12\4\1\312\15\4\24\0\2\4\1\0\2\4"+ + "\3\0\12\4\1\266\15\4\24\0\2\4\1\0\2\4"+ "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ - "\3\0\3\4\1\313\24\4\24\0\2\4\1\0\2\4"+ + "\3\0\21\4\1\267\6\4\24\0\2\4\1\0\2\4"+ "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ - "\3\0\3\4\1\314\24\4\24\0\2\4\1\0\2\4"+ + "\3\0\6\4\1\270\21\4\24\0\2\4\1\0\2\4"+ "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ - "\3\0\1\315\27\4\23\0"; + "\3\0\14\4\1\271\13\4\24\0\2\4\1\0\2\4"+ + "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ + "\3\0\3\4\1\272\24\4\24\0\2\4\1\0\2\4"+ + "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ + "\3\0\24\4\1\273\3\4\24\0\2\4\1\0\2\4"+ + "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ + "\3\0\3\4\1\274\24\4\23\0\11\231\1\232\1\260"+ + "\66\231\25\172\1\275\53\172\1\0\2\4\1\0\2\4"+ + "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ + "\3\0\5\4\1\276\22\4\24\0\2\4\1\0\2\4"+ + "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ + "\3\0\4\4\1\277\23\4\24\0\2\4\1\0\2\4"+ + "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ + "\3\0\1\300\27\4\24\0\2\4\1\0\2\4\1\0"+ + "\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ + "\16\4\1\301\11\4\24\0\2\4\1\0\2\4\1\0"+ + "\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ + "\10\4\1\302\17\4\24\0\2\4\1\0\2\4\1\0"+ + "\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ + "\1\303\27\4\24\0\2\4\1\0\2\4\1\0\1\4"+ + "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\1\4"+ + "\1\304\26\4\24\0\2\4\1\0\2\4\1\0\1\4"+ + "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\11\4"+ + "\1\305\16\4\24\0\2\4\1\0\2\4\1\0\1\4"+ + "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\13\4"+ + "\1\306\14\4\24\0\2\4\1\0\2\4\1\0\1\4"+ + "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\6\4"+ + "\1\307\21\4\24\0\2\4\1\0\2\4\1\0\1\4"+ + "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\12\4"+ + "\1\310\15\4\24\0\2\4\1\0\2\4\1\0\1\4"+ + "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\3\4"+ + "\1\311\24\4\24\0\2\4\1\0\2\4\1\0\1\4"+ + "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\3\4"+ + "\1\312\24\4\24\0\2\4\1\0\2\4\1\0\1\4"+ + "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\1\313"+ + "\27\4\23\0"; private static int [] zzUnpackTrans() { - int [] result = new int[8840]; + int [] result = new int[8775]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -495,13 +492,13 @@ class _JetLexer implements FlexLexer { private static final String ZZ_ATTRIBUTE_PACKED_0 = "\1\0\1\11\43\1\1\11\1\1\11\11\1\0\1\1"+ "\1\0\1\1\1\0\1\1\1\0\1\11\2\1\2\11"+ - "\4\1\5\11\35\1\1\11\1\0\1\1\12\11\1\1"+ - "\1\11\2\0\2\1\4\0\1\11\4\1\1\11\24\1"+ + "\4\1\5\11\34\1\1\11\1\0\1\1\12\11\1\1"+ + "\1\11\2\0\2\1\4\0\1\11\3\1\1\11\24\1"+ "\6\11\1\0\1\1\1\11\1\1\2\0\21\1\1\11"+ "\2\0\13\1\1\11\16\1"; private static int [] zzUnpackAttribute() { - int [] result = new int[205]; + int [] result = new int[203]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -809,359 +806,355 @@ class _JetLexer implements FlexLexer { case 3: { return JetTokens.IDENTIFIER; } - case 90: break; - case 64: + case 89: break; + case 63: { return JetTokens.FOR_KEYWORD ; } - case 91: break; - case 86: + case 90: break; + case 85: { return JetTokens.RETURN_KEYWORD ; } - case 92: break; - case 72: + case 91: break; + case 71: { return JetTokens.NULL_KEYWORD ; } - case 93: break; + case 92: break; case 16: { return JetTokens.LT ; } - case 94: break; + case 93: break; case 45: { return JetTokens.DO_KEYWORD ; } - case 95: break; + case 94: break; case 15: { return JetTokens.PLUS ; } - case 96: break; + case 95: break; case 60: { return JetTokens.RAW_STRING_LITERAL; } - case 97: break; + case 96: break; case 51: { return JetTokens.PLUSEQ ; } - case 98: break; + case 97: break; case 27: { return JetTokens.COMMA ; } - case 99: break; + case 98: break; case 17: { return JetTokens.GT ; } - case 100: break; + case 99: break; case 4: { return JetTokens.WHITE_SPACE; } - case 101: break; - case 84: + case 100: break; + case 83: { return JetTokens.TYPEOF_KEYWORD ; } - case 102: break; + case 101: break; case 25: { return JetTokens.RPAR ; } - case 103: break; + case 102: break; case 47: { return JetTokens.DOUBLE_ARROW; } - case 104: break; - case 74: + case 103: break; + case 73: { return JetTokens.TRUE_KEYWORD ; } - case 105: break; + case 104: break; case 30: { return JetTokens.FIELD_IDENTIFIER; } - case 106: break; + case 105: break; case 55: { return JetTokens.ANDAND ; } - case 107: break; + case 106: break; case 59: { return JetTokens.DOC_COMMENT; } - case 108: break; + case 107: break; case 29: { return JetTokens.FLOAT_LITERAL; } - case 109: break; + case 108: break; case 33: { return JetTokens.EOL_COMMENT; } - case 110: break; - case 77: + case 109: break; + case 76: { return JetTokens.WHEN_KEYWORD ; } - case 111: break; + case 110: break; case 18: { return JetTokens.COLON ; } - case 112: break; + case 111: break; case 53: { return JetTokens.LTEQ ; } - case 113: break; + case 112: break; case 40: { return JetTokens.ARROW ; } - case 114: break; + case 113: break; case 20: { return JetTokens.LBRACKET ; } - case 115: break; + case 114: break; case 58: { yypushback(2); return JetTokens.INTEGER_LITERAL; } - case 116: break; + case 115: break; case 10: { return JetTokens.CHARACTER_LITERAL; } - case 117: break; - case 66: + case 116: break; + case 65: { return JetTokens.VAR_KEYWORD ; } - case 118: break; + case 117: break; case 54: { return JetTokens.GTEQ ; } - case 119: break; + case 118: break; case 2: { return JetTokens.INTEGER_LITERAL; } - case 120: break; + case 119: break; case 23: { return JetTokens.RBRACE ; } - case 121: break; - case 79: + case 120: break; + case 78: { return JetTokens.CLASS_KEYWORD ; } - case 122: break; + case 121: break; case 13: { return JetTokens.EXCL ; } - case 123: break; - case 63: + case 122: break; + case 62: { return JetTokens.TRY_KEYWORD ; } - case 124: break; + case 123: break; case 48: { return JetTokens.EXCLEQ ; } - case 125: break; + case 124: break; case 39: { return JetTokens.MINUSEQ ; } - case 126: break; - case 80: + case 125: break; + case 79: { return JetTokens.THROW_KEYWORD ; } - case 127: break; - case 83: + case 126: break; + case 82: { return JetTokens.WHILE_KEYWORD ; } - case 128: break; + case 127: break; case 38: { return JetTokens.MINUSMINUS; } - case 129: break; - case 87: + case 128: break; + case 86: { return JetTokens.CONTINUE_KEYWORD ; } - case 130: break; + case 129: break; case 32: { return JetTokens.ATAT ; } - case 131: break; - case 69: + case 130: break; + case 68: { return JetTokens.NOT_IN; } - case 132: break; + case 131: break; case 6: { return JetTokens.DIV ; } - case 133: break; + case 132: break; case 50: { return JetTokens.ELVIS ; } - case 134: break; + case 133: break; case 31: { return JetTokens.LABEL_IDENTIFIER; } - case 135: break; + case 134: break; case 14: { return JetTokens.QUEST ; } - case 136: break; + case 135: break; case 56: { return JetTokens.OROR ; } - case 137: break; + case 136: break; case 19: { return JetTokens.PERC ; } - case 138: break; - case 71: + case 137: break; + case 70: { return JetTokens.EXCLEQEQEQ; } - case 139: break; + case 138: break; case 57: { return JetTokens.PERCEQ ; } - case 140: break; + case 139: break; case 37: { return JetTokens.RANGE ; } - case 141: break; + case 140: break; case 1: { return TokenType.BAD_CHARACTER; } - case 142: break; + case 141: break; case 49: { return JetTokens.SAFE_ACCESS; } - case 143: break; - case 88: + case 142: break; + case 87: { return JetTokens.NAMESPACE_KEYWORD ; } - case 144: break; - case 70: + case 143: break; + case 69: { return JetTokens.NOT_IS; } - case 145: break; + case 144: break; case 7: { return JetTokens.MUL ; } - case 146: break; + case 145: break; case 21: { return JetTokens.RBRACKET ; } - case 147: break; + case 146: break; case 52: { return JetTokens.PLUSPLUS ; } - case 148: break; - case 76: + case 147: break; + case 75: { return JetTokens.THIS_KEYWORD ; } - case 149: break; + case 148: break; case 8: { return JetTokens.DOT ; } - case 150: break; + case 149: break; case 26: { return JetTokens.SEMICOLON ; } - case 151: break; + case 150: break; case 44: { return JetTokens.IF_KEYWORD ; } - case 152: break; + case 151: break; case 12: { return JetTokens.EQ ; } - case 153: break; + case 152: break; case 5: { return JetTokens.AT ; } - case 154: break; - case 62: + case 153: break; + case 61: { return JetTokens.AS_SAFE; } - case 155: break; + case 154: break; case 24: { return JetTokens.LPAR ; } - case 156: break; + case 155: break; case 9: { return JetTokens.MINUS ; } - case 157: break; - case 81: + case 156: break; + case 80: { return JetTokens.FALSE_KEYWORD ; } - case 158: break; - case 75: + case 157: break; + case 74: { return JetTokens.TYPE_KEYWORD ; } - case 159: break; - case 65: + case 158: break; + case 64: { return JetTokens.FUN_KEYWORD ; } - case 160: break; + case 159: break; case 43: { return JetTokens.IS_KEYWORD ; } - case 161: break; + case 160: break; case 35: { return JetTokens.DIVEQ ; } - case 162: break; - case 89: + case 161: break; + case 88: { return JetTokens.EXTENSION_KEYWORD ; } - case 163: break; - case 73: + case 162: break; + case 72: { return JetTokens.ELSE_KEYWORD ; } - case 164: break; + case 163: break; case 41: { return JetTokens.AS_KEYWORD ; } - case 165: break; + case 164: break; case 42: { return JetTokens.IN_KEYWORD ; } - case 166: break; + case 165: break; case 46: { return JetTokens.EQEQ ; } - case 167: break; - case 67: + case 166: break; + case 66: { return JetTokens.VAL_KEYWORD ; } - case 168: break; - case 68: + case 167: break; + case 67: { return JetTokens.EQEQEQ ; } - case 169: break; - case 78: + case 168: break; + case 77: { return JetTokens.CAPITALIZED_THIS_KEYWORD ; } - case 170: break; - case 61: - { return JetTokens.NEW_KEYWORD ; - } - case 171: break; + case 169: break; case 36: { return JetTokens.MULTEQ ; } - case 172: break; + case 170: break; case 11: { return JetTokens.STRING_LITERAL; } - case 173: break; + case 171: break; case 22: { return JetTokens.LBRACE ; } - case 174: break; - case 85: + case 172: break; + case 84: { return JetTokens.OBJECT_KEYWORD ; } - case 175: break; - case 82: + case 173: break; + case 81: { return JetTokens.BREAK_KEYWORD ; } - case 176: break; + case 174: break; case 34: { return JetTokens.BLOCK_COMMENT; } - case 177: break; + case 175: break; case 28: { return JetTokens.HASH ; } - case 178: break; + case 176: break; default: if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; diff --git a/idea/testData/cfg/ArrayAccess.instructions b/idea/testData/cfg/ArrayAccess.instructions index 02b6aaa8d4e..b2d18a45e79 100644 --- a/idea/testData/cfg/ArrayAccess.instructions +++ b/idea/testData/cfg/ArrayAccess.instructions @@ -1,6 +1,6 @@ == foo == fun foo() { - val a = new Array + val a = Array 3 a[10] = 4 2 @@ -11,7 +11,8 @@ fun foo() { --------------------- l0: - r(new Array) + r(Array) + r(Array) w(a) r(3) r(4) diff --git a/idea/testData/cfg/ArrayAccess.jet b/idea/testData/cfg/ArrayAccess.jet index 07bacf3c9cd..280e8762cae 100644 --- a/idea/testData/cfg/ArrayAccess.jet +++ b/idea/testData/cfg/ArrayAccess.jet @@ -1,5 +1,5 @@ fun foo() { - val a = new Array + val a = Array 3 a[10] = 4 2 diff --git a/idea/testData/cfg/Assignments.instructions b/idea/testData/cfg/Assignments.instructions index dd1ad0bd64a..07ceb36d2c8 100644 --- a/idea/testData/cfg/Assignments.instructions +++ b/idea/testData/cfg/Assignments.instructions @@ -9,7 +9,7 @@ fun assignments() : Unit { val y = true && false val z = false && true - val t = new Test(); + val t = Test(); t.x = 1 } --------------------- @@ -43,7 +43,8 @@ l4: l5: r(false && true) w(z) - r(new Test()) + r(Test) + r(Test()) w(t) r(1) r(t) diff --git a/idea/testData/cfg/Assignments.jet b/idea/testData/cfg/Assignments.jet index 341c9c1d2c9..08fbb3984ea 100644 --- a/idea/testData/cfg/Assignments.jet +++ b/idea/testData/cfg/Assignments.jet @@ -12,6 +12,6 @@ fun assignments() : Unit { val y = true && false val z = false && true - val t = new Test(); + val t = Test(); t.x = 1 } \ No newline at end of file diff --git a/idea/testData/cfg/FailFunction.instructions b/idea/testData/cfg/FailFunction.instructions index f566a464e76..716bd2a6536 100644 --- a/idea/testData/cfg/FailFunction.instructions +++ b/idea/testData/cfg/FailFunction.instructions @@ -1,11 +1,16 @@ == fail == fun fail() : Nothing { - throw new java.lang.RuntimeException() + throw java.lang.RuntimeException() } --------------------- l0: - r(new java.lang.RuntimeException()) + r(java) + r(lang) + r(java.lang) + r(RuntimeException) + r(RuntimeException()) + r(java.lang.RuntimeException()) jmp(error) l1: diff --git a/idea/testData/cfg/FailFunction.jet b/idea/testData/cfg/FailFunction.jet index 6ac8f8e3561..2f518c6fa92 100644 --- a/idea/testData/cfg/FailFunction.jet +++ b/idea/testData/cfg/FailFunction.jet @@ -1,3 +1,3 @@ fun fail() : Nothing { - throw new java.lang.RuntimeException() + throw java.lang.RuntimeException() } \ No newline at end of file diff --git a/idea/testData/checker/BinaryCallsOnNullableValues.jet b/idea/testData/checker/BinaryCallsOnNullableValues.jet index 0881cbb9548..b05563cd548 100644 --- a/idea/testData/checker/BinaryCallsOnNullableValues.jet +++ b/idea/testData/checker/BinaryCallsOnNullableValues.jet @@ -21,9 +21,9 @@ fun f(): Unit { x == 1 x != 1 - new A() == 1 - new B() == 1 - new C() == 1 + A() == 1 + B() == 1 + C() == 1 x === "1" x !== "1" diff --git a/idea/testData/checker/Bounds.jet b/idea/testData/checker/Bounds.jet index baeb1efcdae..7c8320eb151 100644 --- a/idea/testData/checker/Bounds.jet +++ b/idea/testData/checker/Bounds.jet @@ -4,14 +4,14 @@ namespace boundsWithSubstitutors { class C : A - val a = new B() - val a1 = new B<Int>() + val a = B() + val a1 = B<Int>() class X() - val b = new X, C>> - val b0 = new XAny?> - val b1 = new X, String>> + val b = X, C>> + val b0 = XAny?> + val b1 = X, String>> } @@ -19,7 +19,7 @@ namespace boundsWithSubstitutors { open class B() class CInt>, X : {(B<Char>) : (B<Any>, B)}>() : B<Any>() { // 2 errors - val a = new B<Char>() // error + val a = B<Char>() // error val x : {(B<Char>) : B<Any>} } diff --git a/idea/testData/checker/ExtensionFunctions.jet b/idea/testData/checker/ExtensionFunctions.jet index fbd636f51af..c06234d0548 100644 --- a/idea/testData/checker/ExtensionFunctions.jet +++ b/idea/testData/checker/ExtensionFunctions.jet @@ -61,7 +61,7 @@ namespace null_safety { command.equals1(null) command?.equals1(null) - val c = new Command() + val c = Command() c?.equals(null) if (command == null) 1 diff --git a/idea/testData/checker/ForRangeConventions.jet b/idea/testData/checker/ForRangeConventions.jet index 7b031319857..ebc71d5e462 100644 --- a/idea/testData/checker/ForRangeConventions.jet +++ b/idea/testData/checker/ForRangeConventions.jet @@ -66,16 +66,16 @@ class Range1() { } fun test() { - for (i in new NotRange1()); - for (i in new NotRange2()); - for (i in new NotRange3()); - for (i in new NotRange4()); - for (i in new NotRange5()); - for (i in new NotRange6()); - for (i in new NotRange7()); - for (i in new Range0()); - for (i in new Range1()); + for (i in NotRange1()); + for (i in NotRange2()); + for (i in NotRange3()); + for (i in NotRange4()); + for (i in NotRange5()); + for (i in NotRange6()); + for (i in NotRange7()); + for (i in Range0()); + for (i in Range1()); - for (i in (new ArrayList() : List)); + for (i in (ArrayList() : List)); } diff --git a/idea/testData/checker/IncDec.jet b/idea/testData/checker/IncDec.jet index ab4c9d7ce19..6d562f2ed03 100644 --- a/idea/testData/checker/IncDec.jet +++ b/idea/testData/checker/IncDec.jet @@ -4,7 +4,7 @@ class IncDec() { } fun testIncDec() { - var x = new IncDec() + var x = IncDec() x++ ++x x-- @@ -21,7 +21,7 @@ class WrongIncDec() { } fun testWrongIncDec() { - var x = new WrongIncDec() + var x = WrongIncDec() x++ ++x x-- @@ -34,7 +34,7 @@ class UnitIncDec() { } fun testUnitIncDec() { - var x = new UnitIncDec() + var x = UnitIncDec() x++ ++x x-- diff --git a/idea/testData/checker/MultipleBounds.jet b/idea/testData/checker/MultipleBounds.jet index 39b7cea0adc..9a876731a2c 100644 --- a/idea/testData/checker/MultipleBounds.jet +++ b/idea/testData/checker/MultipleBounds.jet @@ -32,9 +32,9 @@ class Test1 } fun test() { - new Test1<B>() - new Test1<A>() - new Test1() + Test1<B>() + Test1<A>() + Test1() } class Foo() {} @@ -60,9 +60,9 @@ fun t.bar() } -val test1 = test2<A>(new A()) -val test2 = test2<B>(new B()) -val test3 = test2(new C()) +val test1 = test2<A>(A()) +val test2 = test2<B>(B()) +val test3 = test2(C()) class Test<T> where diff --git a/idea/testData/checker/ResolveToJava.jet b/idea/testData/checker/ResolveToJava.jet index b8271d51043..c308dd86974 100644 --- a/idea/testData/checker/ResolveToJava.jet +++ b/idea/testData/checker/ResolveToJava.jet @@ -5,7 +5,7 @@ import utils.* import java.io.PrintStream import java.lang.Comparable as Com -val l : List = new ArrayList() +val l : List = ArrayList() fun test(l : java.util.List) { val x : java.List @@ -24,7 +24,7 @@ fun test(l : java.util.List) { Collections.singleton(1) : Set? Collections.singleton(1.0) - new List + List val o = "sdf" as Object @@ -36,14 +36,14 @@ fun test(l : java.util.List) { System.out?.println(e.getMessage()) } - new PrintStream("sdf") + PrintStream("sdf") val c : Com? = null c : java.lang.Comparable? -// Collections.sort(new ArrayList()) - new xxx.Class() +// Collections.sort(ArrayList()) + xxx.Class() } diff --git a/idea/testData/checker/UnreachableCode.jet b/idea/testData/checker/UnreachableCode.jet index f06223709ed..9b88d958a92 100644 --- a/idea/testData/checker/UnreachableCode.jet +++ b/idea/testData/checker/UnreachableCode.jet @@ -149,7 +149,7 @@ fun foo(a : Nothing) : Unit { } fun fail() : Nothing { - throw new java.lang.RuntimeException() + throw java.lang.RuntimeException() } fun nullIsNotNothing() : Unit { diff --git a/idea/testData/checker/regression/DoubleDefine.jet b/idea/testData/checker/regression/DoubleDefine.jet index 4f09bb37616..3aa5205ccf1 100644 --- a/idea/testData/checker/regression/DoubleDefine.jet +++ b/idea/testData/checker/regression/DoubleDefine.jet @@ -10,15 +10,15 @@ fun takeFirst(expr: StringBuilder): Char { } fun evaluateArg(expr: AbstractStringBuilder, numbers: ArrayList): Int { - if (expr.length() == 0) throw new Exception("Syntax error: Character expected"); + if (expr.length() == 0) throw Exception("Syntax error: Character expected"); val c = takeFirst(expr) if (c >= '0' && c <= '9') { val n = c - '0' - if (!numbers.contains(n)) throw new Exception("You used incorrect number: " + n) + if (!numbers.contains(n)) throw Exception("You used incorrect number: " + n) numbers.remove(n) return n } - throw new Exception("Syntax error: Unrecognized character " + c) + throw Exception("Syntax error: Unrecognized character " + c) } fun evaluateAdd(expr: StringBuilder, numbers: ArrayList): Int { @@ -40,9 +40,9 @@ fun evaluate(expr: StringBuilder, numbers: ArrayList): Int { fun main(args: Array) { System.out?.println("24 game") - val numbers = new ArrayList(4) - val rnd = new Random(); - val prompt = new StringBuilder() + val numbers = ArrayList(4) + val rnd = Random(); + val prompt = StringBuilder() for(val i in 0..3) { val n = rnd.nextInt(9) + 1 numbers.add(n) @@ -51,8 +51,8 @@ fun main(args: Array) { } System.out?.println("Your numbers: " + prompt) System.out?.println("Enter your expression:") - val reader = new BufferedReader(new InputStreamReader(System.`in`)) - val expr = new StringBuilder(reader.readLine()) + val reader = BufferedReader(InputStreamReader(System.`in`)) + val expr = StringBuilder(reader.readLine()) try { val result = evaluate(expr, numbers) if (result != 24) diff --git a/idea/testData/checker/regression/Jet72.jet b/idea/testData/checker/regression/Jet72.jet index 0051d05d8d5..bcee3560ccc 100644 --- a/idea/testData/checker/regression/Jet72.jet +++ b/idea/testData/checker/regression/Jet72.jet @@ -6,7 +6,7 @@ class Item(val room: Object) { val name : String } -val items: ArrayList = new ArrayList +val items: ArrayList = ArrayList fun test(room : Object) { for(val item: Item in items) { diff --git a/idea/testData/codegen/classes/diamondInheritance.jet b/idea/testData/codegen/classes/diamondInheritance.jet index 8266ca75d38..63116f267b8 100644 --- a/idea/testData/codegen/classes/diamondInheritance.jet +++ b/idea/testData/codegen/classes/diamondInheritance.jet @@ -11,7 +11,7 @@ fun vl(l : Left) : Int = l.v fun vr(r : Right) : Int = r.v fun box() : String { - val d = new D() + val d = D() d.v = 42 if (d.v != 42) return "Fail #1" diff --git a/idea/testData/codegen/classes/funDelegation.jet b/idea/testData/codegen/classes/funDelegation.jet index 6af00871dd5..f56f9d0d29b 100644 --- a/idea/testData/codegen/classes/funDelegation.jet +++ b/idea/testData/codegen/classes/funDelegation.jet @@ -10,8 +10,8 @@ class Derived2() : Abstract, Base() {} fun test(s : Base) : Boolean = s.n(238) == 239 fun box() : String { - if (!test(new Base())) return "Fail #1" - if (!test(new Derived1())) return "Fail #2" - if (!test(new Derived2())) return "Fail #3" + if (!test(Base())) return "Fail #1" + if (!test(Derived1())) return "Fail #2" + if (!test(Derived2())) return "Fail #3" return "OK" } \ No newline at end of file diff --git a/idea/testData/codegen/classes/inheritance.jet b/idea/testData/codegen/classes/inheritance.jet index 56514a2b9c4..8db0245b94d 100644 --- a/idea/testData/codegen/classes/inheritance.jet +++ b/idea/testData/codegen/classes/inheritance.jet @@ -11,22 +11,22 @@ class P3(x : Int, yy : Y) : X(x), Y by yy, Abstract {} class P4(x : Int, yy : Y) : Y by yy, Abstract, X(x) {} fun box() : String { - if (new X(239).x != 239) return "FAIL #1" - if (new Y(239).y != 239) return "FAIL #2" + if (X(239).x != 239) return "FAIL #1" + if (Y(239).y != 239) return "FAIL #2" - val p = new Point(240, -1) + val p = Point(240, -1) if (p.x + p.y != 239) return "FAIL #3" - val y = new Y(-1) - val p1 = new P1(240, y) + val y = Y(-1) + val p1 = P1(240, y) if (p1.x + p1.y != 239) return "FAIL #4" - val p2 = new P2(240, y) + val p2 = P2(240, y) if (p2.x + p2.y != 239) return "FAIL #5" - val p3 = new P3(240, y) + val p3 = P3(240, y) if (p3.x + p3.y != 239) return "FAIL #6" - val p4 = new P4(240, y) + val p4 = P4(240, y) if (p4.x + p4.y != 239) return "FAIL #7" "OK" diff --git a/idea/testData/codegen/classes/inheritedInnerClass.jet b/idea/testData/codegen/classes/inheritedInnerClass.jet index 1243ec57d47..1ea358a6ccf 100644 --- a/idea/testData/codegen/classes/inheritedInnerClass.jet +++ b/idea/testData/codegen/classes/inheritedInnerClass.jet @@ -5,10 +5,10 @@ class Outer() { class InnerDerived(): InnerBase() { } - public val foo: InnerBase? = new InnerDerived() + public val foo: InnerBase? = InnerDerived() } fun box() { - val o = new Outer() + val o = Outer() return if (o.foo === null) "fail" else "OK" } diff --git a/idea/testData/codegen/classes/inheritedMethod.jet b/idea/testData/codegen/classes/inheritedMethod.jet index c872bdff53d..82474b9df72 100644 --- a/idea/testData/codegen/classes/inheritedMethod.jet +++ b/idea/testData/codegen/classes/inheritedMethod.jet @@ -7,7 +7,7 @@ class Bar(): Foo { } fun box() { - val bar = new Bar() + val bar = Bar() val f = bar.test() return if (f == "xyzzy") "OK" else "fail" } diff --git a/idea/testData/codegen/classes/initializerBlock.jet b/idea/testData/codegen/classes/initializerBlock.jet index 5a5496d9fe6..0c41f783a05 100644 --- a/idea/testData/codegen/classes/initializerBlock.jet +++ b/idea/testData/codegen/classes/initializerBlock.jet @@ -7,7 +7,7 @@ class C() { } fun box(): String { - val c = new C() + val c = C() if (c.f != 610) return "fail" return "OK" } diff --git a/idea/testData/codegen/classes/initializerBlockDImpl.jet b/idea/testData/codegen/classes/initializerBlockDImpl.jet index 17272e9f75e..9b8f0af361a 100644 --- a/idea/testData/codegen/classes/initializerBlockDImpl.jet +++ b/idea/testData/codegen/classes/initializerBlockDImpl.jet @@ -2,7 +2,7 @@ import java.util.* import java.io.* class World() { - public val items: ArrayList = new ArrayList + public val items: ArrayList = ArrayList class Item() { { @@ -10,11 +10,11 @@ class World() { } } - val foo = new Item() + val foo = Item() } fun box() { - val w = new World() + val w = World() if (w.items.size() != 1) return "fail" return "OK" } diff --git a/idea/testData/codegen/classes/innerClass.jet b/idea/testData/codegen/classes/innerClass.jet index 52adef612a7..6bd9f964929 100644 --- a/idea/testData/codegen/classes/innerClass.jet +++ b/idea/testData/codegen/classes/innerClass.jet @@ -6,13 +6,13 @@ class Outer(val foo: StringBuilder) { } fun test() { - return new Inner() + return Inner() } } fun box(): String { - val sb = new StringBuilder("xyzzy") - val o = new Outer(sb) + val sb = StringBuilder("xyzzy") + val o = Outer(sb) val i = o.test() val l = i.len() return if (l != 5) "fail" else "OK" diff --git a/idea/testData/codegen/classes/newInstanceDefaultConstructor.jet b/idea/testData/codegen/classes/newInstanceDefaultConstructor.jet index 84ef4b312e2..0bea20be66b 100644 --- a/idea/testData/codegen/classes/newInstanceDefaultConstructor.jet +++ b/idea/testData/codegen/classes/newInstanceDefaultConstructor.jet @@ -3,6 +3,6 @@ class SimpleClass() { } fun test() { - val c = new SimpleClass() + val c = SimpleClass() return c.foo() } diff --git a/idea/testData/codegen/classes/outerThis.jet b/idea/testData/codegen/classes/outerThis.jet index f907a112775..29f8752813b 100644 --- a/idea/testData/codegen/classes/outerThis.jet +++ b/idea/testData/codegen/classes/outerThis.jet @@ -3,10 +3,10 @@ class Outer() { val outer: Outer get() = this@Outer } - public val x = new Inner() + public val x = Inner() } fun box() { - val o = new Outer() + val o = Outer() return if (o === o.x.outer) "OK" else "fail" } diff --git a/idea/testData/codegen/classes/propertyDelegation.jet b/idea/testData/codegen/classes/propertyDelegation.jet index fa962d08682..dca646f0aef 100644 --- a/idea/testData/codegen/classes/propertyDelegation.jet +++ b/idea/testData/codegen/classes/propertyDelegation.jet @@ -26,8 +26,8 @@ fun code(s : Base) : Int { fun test(s : Base) : Boolean = code(s) == 0 fun box() : String { - if (!test(new Base())) return "Fail #1" - if (!test(new Derived1())) return "Fail #2" - if (!test(new Derived2())) return "Fail #3" + if (!test(Base())) return "Fail #1" + if (!test(Derived1())) return "Fail #2" + if (!test(Derived2())) return "Fail #3" return "OK" } \ No newline at end of file diff --git a/idea/testData/codegen/classes/propertyInInitializer.jet b/idea/testData/codegen/classes/propertyInInitializer.jet index 8bf3d48ef54..5d4ff9ce25e 100644 --- a/idea/testData/codegen/classes/propertyInInitializer.jet +++ b/idea/testData/codegen/classes/propertyInInitializer.jet @@ -7,10 +7,10 @@ class Outer() { class InnerDerived(): InnerBase(s) { } - public val x = new InnerDerived() + public val x = InnerDerived() } fun box() { - val o = new Outer() + val o = Outer() return if (o.x.name != "xyzzy") "fail" else "OK" } diff --git a/idea/testData/codegen/classes/rightHandOverride.jet b/idea/testData/codegen/classes/rightHandOverride.jet index 8f5562442fa..66c47d7c1cc 100644 --- a/idea/testData/codegen/classes/rightHandOverride.jet +++ b/idea/testData/codegen/classes/rightHandOverride.jet @@ -8,8 +8,8 @@ class D() : Left(), Right() { } fun box() : String { - val r : Right = new Right() - val d : D = new D() + val r : Right = Right() + val d : D = D() if (r.f() != 42) return "Fail #1" if (d.f() != 239) return "Fail #2" diff --git a/idea/testData/codegen/controlStructures/for.jet b/idea/testData/codegen/controlStructures/for.jet index 130f41b0608..ffaf8a6489b 100644 --- a/idea/testData/codegen/controlStructures/for.jet +++ b/idea/testData/codegen/controlStructures/for.jet @@ -1,7 +1,7 @@ import java.util.* fun concat(l: List): String? { - val sb = new StringBuilder() + val sb = StringBuilder() for(s in l) { sb.append(s) } diff --git a/idea/testData/codegen/controlStructures/forInArray.jet b/idea/testData/codegen/controlStructures/forInArray.jet index e6acac23ac5..132ab47a283 100644 --- a/idea/testData/codegen/controlStructures/forInArray.jet +++ b/idea/testData/codegen/controlStructures/forInArray.jet @@ -1,5 +1,5 @@ fun concat(l: Array): String? { - val sb = new StringBuilder() + val sb = StringBuilder() for(s in l) { sb.append(s) } diff --git a/idea/testData/codegen/extensionFunctions/simple.jet b/idea/testData/codegen/extensionFunctions/simple.jet index dcc44085766..f8d04d540e0 100644 --- a/idea/testData/codegen/extensionFunctions/simple.jet +++ b/idea/testData/codegen/extensionFunctions/simple.jet @@ -1,3 +1,3 @@ fun StringBuilder.first() = this.charAt(0) -fun foo() = new StringBuilder("foo").first() +fun foo() = StringBuilder("foo").first() diff --git a/idea/testData/codegen/extensionFunctions/whenFail.jet b/idea/testData/codegen/extensionFunctions/whenFail.jet index 252fe893a86..920da1dc5ae 100644 --- a/idea/testData/codegen/extensionFunctions/whenFail.jet +++ b/idea/testData/codegen/extensionFunctions/whenFail.jet @@ -8,7 +8,7 @@ fun StringBuilder.takeFirst(): Char { fun foo(expr: StringBuilder): Int { val c = expr.takeFirst() when(c) { - '\0' => throw new Exception("zero") - else => throw new Exception("nonzero" + c) + '\0' => throw Exception("zero") + else => throw Exception("nonzero" + c) } } diff --git a/idea/testData/codegen/functionCall.jet b/idea/testData/codegen/functionCall.jet index 417b62f052d..678bebfd1ab 100644 --- a/idea/testData/codegen/functionCall.jet +++ b/idea/testData/codegen/functionCall.jet @@ -1,5 +1,5 @@ fun f() { - val x = new StringBuilder(); + val x = StringBuilder(); g(x); return x.toString(); } diff --git a/idea/testData/codegen/newInstanceExplicitConstructor.jet b/idea/testData/codegen/newInstanceExplicitConstructor.jet index f16447addad..26de34c0477 100644 --- a/idea/testData/codegen/newInstanceExplicitConstructor.jet +++ b/idea/testData/codegen/newInstanceExplicitConstructor.jet @@ -5,6 +5,6 @@ class SimpleClass { } fun test() { - val c = new SimpleClass() + val c = SimpleClass() return c.foo() } diff --git a/idea/testData/codegen/typeInfo/asInLoop.jet b/idea/testData/codegen/typeInfo/asInLoop.jet index 3e9f5c8379e..fafffeea196 100644 --- a/idea/testData/codegen/typeInfo/asInLoop.jet +++ b/idea/testData/codegen/typeInfo/asInLoop.jet @@ -1,6 +1,6 @@ import java.io.* fun main(args: Array) { - val reader = new BufferedReader(new InputStreamReader(System.`in`)) + val reader = BufferedReader(InputStreamReader(System.`in`)) while(true) { val cmd = reader.readLine() as String } diff --git a/idea/testData/codegen/typeInfo/asSafeWithGenerics.jet b/idea/testData/codegen/typeInfo/asSafeWithGenerics.jet index 8d521b5c260..2c86f25e8f3 100644 --- a/idea/testData/codegen/typeInfo/asSafeWithGenerics.jet +++ b/idea/testData/codegen/typeInfo/asSafeWithGenerics.jet @@ -3,6 +3,6 @@ class Wrapper() { } fun foo() { - val wrapper = new Wrapper() - return wrapper.castToSelf(new Wrapper()) + val wrapper = Wrapper() + return wrapper.castToSelf(Wrapper()) } diff --git a/idea/testData/codegen/typeInfo/getTypeInfo.jet b/idea/testData/codegen/typeInfo/getTypeInfo.jet index e1e9371af00..d4779382322 100644 --- a/idea/testData/codegen/typeInfo/getTypeInfo.jet +++ b/idea/testData/codegen/typeInfo/getTypeInfo.jet @@ -1,4 +1,4 @@ class Point() { } -fun foo() = new Point() +fun foo() = Point() diff --git a/idea/testData/codegen/typeInfo/isWithGenericParameters.jet b/idea/testData/codegen/typeInfo/isWithGenericParameters.jet index d0bdd851ffc..3faf3afb821 100644 --- a/idea/testData/codegen/typeInfo/isWithGenericParameters.jet +++ b/idea/testData/codegen/typeInfo/isWithGenericParameters.jet @@ -3,6 +3,6 @@ class Wrapper() { } fun foo() { - val wrapper = new Wrapper() - return wrapper.isSameWrapper(new Wrapper()) + val wrapper = Wrapper() + return wrapper.isSameWrapper(Wrapper()) } diff --git a/idea/testData/codegen/typeInfo/isWithGenerics.jet b/idea/testData/codegen/typeInfo/isWithGenerics.jet index 416799acd8a..fa8458f38cf 100644 --- a/idea/testData/codegen/typeInfo/isWithGenerics.jet +++ b/idea/testData/codegen/typeInfo/isWithGenerics.jet @@ -2,6 +2,6 @@ class Wrapper() { } fun foo() { - val wrapper = new Wrapper() + val wrapper = Wrapper() return wrapper is Wrapper } diff --git a/idea/testData/codegen/typeInfo/typeOfOperator.jet b/idea/testData/codegen/typeInfo/typeOfOperator.jet index fd6f259425e..b1ba1b372ec 100644 --- a/idea/testData/codegen/typeInfo/typeOfOperator.jet +++ b/idea/testData/codegen/typeInfo/typeOfOperator.jet @@ -2,6 +2,6 @@ class Point() { } fun foo() { - val p = new Point(); + val p = Point(); return typeof(p); } diff --git a/idea/testData/psi/ControlStructures.jet b/idea/testData/psi/ControlStructures.jet index a06f5eb934c..1e8156b680c 100644 --- a/idea/testData/psi/ControlStructures.jet +++ b/idea/testData/psi/ControlStructures.jet @@ -1,6 +1,6 @@ fun a( - a : foo = throw new Foo(), + a : foo = throw Foo(), a : foo = return 10, a : foo = break, a : foo = break @la, diff --git a/idea/testData/psi/ControlStructures.txt b/idea/testData/psi/ControlStructures.txt index 3411f273ec0..e784b25321d 100644 --- a/idea/testData/psi/ControlStructures.txt +++ b/idea/testData/psi/ControlStructures.txt @@ -22,13 +22,9 @@ JetFile: ControlStructures.jet THROW PsiElement(throw)('throw') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Foo') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Foo') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') diff --git a/idea/testData/psi/ModifierAsSelector.jet b/idea/testData/psi/ModifierAsSelector.jet index 137426ea38b..06688335ba1 100644 --- a/idea/testData/psi/ModifierAsSelector.jet +++ b/idea/testData/psi/ModifierAsSelector.jet @@ -2,4 +2,4 @@ val z = System.out -fun foo() { throw new Exception(); } +fun foo() { throw Exception(); } diff --git a/idea/testData/psi/ModifierAsSelector.txt b/idea/testData/psi/ModifierAsSelector.txt index cbc19b0cb15..6f276e0dc0d 100644 --- a/idea/testData/psi/ModifierAsSelector.txt +++ b/idea/testData/psi/ModifierAsSelector.txt @@ -30,13 +30,9 @@ JetFile: ModifierAsSelector.jet THROW PsiElement(throw)('throw') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Exception') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Exception') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') diff --git a/idea/testData/psi/RootNamespace.jet b/idea/testData/psi/RootNamespace.jet index f4d8d3bd881..cc0a53278e2 100644 --- a/idea/testData/psi/RootNamespace.jet +++ b/idea/testData/psi/RootNamespace.jet @@ -5,7 +5,7 @@ class X namespace foo.bar { fun foo() { namespace.foo.bar.X - new namespace.foo.bar.X() + namespace.foo.bar.X() when (e) { is namespace.foo.bar.X @ (x) => {} } diff --git a/idea/testData/psi/RootNamespace.txt b/idea/testData/psi/RootNamespace.txt index 491a2930473..8037c5ac8ea 100644 --- a/idea/testData/psi/RootNamespace.txt +++ b/idea/testData/psi/RootNamespace.txt @@ -52,26 +52,24 @@ JetFile: RootNamespace.jet REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('X') PsiWhiteSpace('\n ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - USER_TYPE - USER_TYPE - PsiElement(namespace)('namespace') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('foo') - PsiElement(DOT)('.') - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('bar') + DOT_QUALIFIED_EXPRESSION + DOT_QUALIFIED_EXPRESSION + DOT_QUALIFIED_EXPRESSION + ROOT_NAMESPACE + PsiElement(namespace)('namespace') PsiElement(DOT)('.') REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('X') - VALUE_ARGUMENT_LIST - PsiElement(LPAR)('(') - PsiElement(RPAR)(')') + PsiElement(IDENTIFIER)('foo') + PsiElement(DOT)('.') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('bar') + PsiElement(DOT)('.') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('X') + VALUE_ARGUMENT_LIST + PsiElement(LPAR)('(') + PsiElement(RPAR)(')') PsiWhiteSpace('\n ') WHEN PsiElement(when)('when') diff --git a/idea/testData/psi/SimpleExpressions.jet b/idea/testData/psi/SimpleExpressions.jet index 29ab4bc1ace..77baed79fa6 100644 --- a/idea/testData/psi/SimpleExpressions.jet +++ b/idea/testData/psi/SimpleExpressions.jet @@ -19,12 +19,12 @@ fun a( a : foo = (10), a : foo = (10, "A", 0xf), a : foo = typeof(10), - a : foo = new Foo(bar), - a : foo = new Foo(bar), - a : foo = new Foo(), - a : foo = new Foo(), + a : foo = Foo(bar), + a : foo = Foo(bar), + a : foo = Foo(), + a : foo = Foo(), a : foo = object : Foo{}, - a : foo = throw new Foo(), + a : foo = throw Foo(), a : foo = return 10, a : foo = break, a : foo = break @la, diff --git a/idea/testData/psi/SimpleExpressions.txt b/idea/testData/psi/SimpleExpressions.txt index 6c9c4922204..d6fe274a2c9 100644 --- a/idea/testData/psi/SimpleExpressions.txt +++ b/idea/testData/psi/SimpleExpressions.txt @@ -366,13 +366,9 @@ JetFile: SimpleExpressions.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Foo') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Foo') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT @@ -393,21 +389,17 @@ JetFile: SimpleExpressions.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Foo') - TYPE_ARGUMENT_LIST - PsiElement(LT)('<') - TYPE_PROJECTION - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('A') - PsiElement(GT)('>') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Foo') + TYPE_ARGUMENT_LIST + PsiElement(LT)('<') + TYPE_PROJECTION + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('A') + PsiElement(GT)('>') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT @@ -428,13 +420,9 @@ JetFile: SimpleExpressions.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Foo') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Foo') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') @@ -452,21 +440,17 @@ JetFile: SimpleExpressions.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Foo') - TYPE_ARGUMENT_LIST - PsiElement(LT)('<') - TYPE_PROJECTION - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('bar') - PsiElement(GT)('>') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Foo') + TYPE_ARGUMENT_LIST + PsiElement(LT)('<') + TYPE_PROJECTION + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('bar') + PsiElement(GT)('>') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') @@ -516,13 +500,9 @@ JetFile: SimpleExpressions.jet THROW PsiElement(throw)('throw') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Foo') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Foo') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') diff --git a/idea/testData/psi/ThisType.jet b/idea/testData/psi/ThisType.jet index 6d27cfa1171..2e6d869a189 100644 --- a/idea/testData/psi/ThisType.jet +++ b/idea/testData/psi/ThisType.jet @@ -1,6 +1,6 @@ class Foo>(a : This, b : bar) : List by foo as List { fun foo(a : This) : This { - val a : This = new Foo(); + val a : This = Foo(); } } diff --git a/idea/testData/psi/ThisType.txt b/idea/testData/psi/ThisType.txt index 8e47c2c60d9..dfbca2d3240 100644 --- a/idea/testData/psi/ThisType.txt +++ b/idea/testData/psi/ThisType.txt @@ -131,20 +131,16 @@ JetFile: ThisType.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Foo') - TYPE_ARGUMENT_LIST - PsiElement(LT)('<') - TYPE_PROJECTION - TYPE_REFERENCE - SELF_TYPE - PsiElement(This)('This') - PsiElement(GT)('>') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Foo') + TYPE_ARGUMENT_LIST + PsiElement(LT)('<') + TYPE_PROJECTION + TYPE_REFERENCE + SELF_TYPE + PsiElement(This)('This') + PsiElement(GT)('>') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') diff --git a/idea/testData/psi/examples/AnonymousObjects.jet b/idea/testData/psi/examples/AnonymousObjects.jet index 2242c4f2c0f..b9706fdcfab 100644 --- a/idea/testData/psi/examples/AnonymousObjects.jet +++ b/idea/testData/psi/examples/AnonymousObjects.jet @@ -17,7 +17,7 @@ enum class GodMessages { // Type of this variable is GOD_AnonymousClass val GOD = object { - fun sendMessage(message : GodMEssage) = throw new RuntimeException(message.name) + fun sendMessage(message : GodMEssage) = throw RuntimeException(message.name) }; } \ No newline at end of file diff --git a/idea/testData/psi/examples/AnonymousObjects.txt b/idea/testData/psi/examples/AnonymousObjects.txt index 4889c055820..400ec360b6c 100644 --- a/idea/testData/psi/examples/AnonymousObjects.txt +++ b/idea/testData/psi/examples/AnonymousObjects.txt @@ -186,13 +186,9 @@ JetFile: AnonymousObjects.jet THROW PsiElement(throw)('throw') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('RuntimeException') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('RuntimeException') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT diff --git a/idea/testData/psi/examples/Builder.jet b/idea/testData/psi/examples/Builder.jet index cc7eb034f58..64427be91a1 100644 --- a/idea/testData/psi/examples/Builder.jet +++ b/idea/testData/psi/examples/Builder.jet @@ -5,7 +5,7 @@ val foo = object : AntBuilder() { } [lazy] val gant = library { - new File("$gantHome/lib").files.each { + File("$gantHome/lib").files.each { classpath(it) } } @@ -32,7 +32,7 @@ class AntBuilder { } fun library(initializer : { Library.() : Library}) { - val lib = new Library() + val lib = Library() lib.initializer() return lib } diff --git a/idea/testData/psi/examples/Builder.txt b/idea/testData/psi/examples/Builder.txt index 4ffdc27262a..871e3f5c4be 100644 --- a/idea/testData/psi/examples/Builder.txt +++ b/idea/testData/psi/examples/Builder.txt @@ -91,13 +91,9 @@ JetFile: Builder.jet BODY DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('File') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('File') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT @@ -401,13 +397,9 @@ JetFile: Builder.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Library') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Library') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') diff --git a/idea/testData/psi/examples/Graph.jet b/idea/testData/psi/examples/Graph.jet index 225d387f10d..5dd16131bce 100644 --- a/idea/testData/psi/examples/Graph.jet +++ b/idea/testData/psi/examples/Graph.jet @@ -4,28 +4,28 @@ class Edge(val from : V, val data : E, val to : V) class Graph { - private val mutableEdges = new ArrayList>() // type is ArrayList, but I want IMutableList + private val mutableEdges = ArrayList>() // type is ArrayList, but I want IMutableList /* options: - private val edges : IMutableList> = new ArrayList>() - private val edges : IMutableList> = new ArrayList() // not an erasure, but a request to infer parameters + private val edges : IMutableList> = ArrayList>() + private val edges : IMutableList> = ArrayList() // not an erasure, but a request to infer parameters */ - private val mutableVertices = new HashSet>() + private val mutableVertices = HashSet>() val edges : IList> = mutableEdges; val vertices : ISet> = mutableVertices; fun addEdge(from : V, data : E, to : V) { - mutableEdges.add(new Edge(from, data, to)) // constructor parameters are inferred + mutableEdges.add(Edge(from, data, to)) // constructor parameters are inferred } fun addVertex(v : V) { - mutableEdges.add(new Edge(from, data, to)) // constructor parameters are inferred + mutableEdges.add(Edge(from, data, to)) // constructor parameters are inferred } fun neighbours(v : Vertex) = edges.filter{it.from == v}.map{it.to} // type is IIterable> fun dfs(handler : {(V) : Unit}) { - val visited = new HashSet>() + val visited = HashSet>() vertices.foreach{dfs(it, visited, handler)} fun dfs(current : Vertex, visited : ISet>, handler : {(V) : Unit}) { diff --git a/idea/testData/psi/examples/Graph.txt b/idea/testData/psi/examples/Graph.txt index d497f822a97..a7dbf31fe4e 100644 --- a/idea/testData/psi/examples/Graph.txt +++ b/idea/testData/psi/examples/Graph.txt @@ -105,43 +105,39 @@ JetFile: Graph.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('ArrayList') - TYPE_ARGUMENT_LIST - PsiElement(LT)('<') - TYPE_PROJECTION - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Edge') - TYPE_ARGUMENT_LIST - PsiElement(LT)('<') - TYPE_PROJECTION - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('V') - PsiElement(COMMA)(',') - PsiWhiteSpace(' ') - TYPE_PROJECTION - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('E') - PsiElement(GT)('>') - PsiElement(GT)('>') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('ArrayList') + TYPE_ARGUMENT_LIST + PsiElement(LT)('<') + TYPE_PROJECTION + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Edge') + TYPE_ARGUMENT_LIST + PsiElement(LT)('<') + TYPE_PROJECTION + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('V') + PsiElement(COMMA)(',') + PsiWhiteSpace(' ') + TYPE_PROJECTION + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('E') + PsiElement(GT)('>') + PsiElement(GT)('>') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiComment(EOL_COMMENT)('// type is ArrayList, but I want IMutableList') PsiWhiteSpace('\n') - PsiComment(BLOCK_COMMENT)('/* options:\n private val edges : IMutableList> = new ArrayList>()\n private val edges : IMutableList> = new ArrayList() // not an erasure, but a request to infer parameters\n*/') + PsiComment(BLOCK_COMMENT)('/* options:\n private val edges : IMutableList> = ArrayList>()\n private val edges : IMutableList> = ArrayList() // not an erasure, but a request to infer parameters\n*/') PsiWhiteSpace('\n\n ') PROPERTY MODIFIER_LIST @@ -153,29 +149,25 @@ JetFile: Graph.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('HashSet') - TYPE_ARGUMENT_LIST - PsiElement(LT)('<') - TYPE_PROJECTION - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Vertex') - TYPE_ARGUMENT_LIST - PsiElement(LT)('<') - TYPE_PROJECTION - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('V') - PsiElement(GT)('>') - PsiElement(GT)('>') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('HashSet') + TYPE_ARGUMENT_LIST + PsiElement(LT)('<') + TYPE_PROJECTION + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Vertex') + TYPE_ARGUMENT_LIST + PsiElement(LT)('<') + TYPE_PROJECTION + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('V') + PsiElement(GT)('>') + PsiElement(GT)('>') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') @@ -314,13 +306,9 @@ JetFile: Graph.jet VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Edge') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Edge') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT @@ -373,13 +361,9 @@ JetFile: Graph.jet VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Edge') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Edge') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT @@ -513,29 +497,25 @@ JetFile: Graph.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('HashSet') - TYPE_ARGUMENT_LIST - PsiElement(LT)('<') - TYPE_PROJECTION - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Vertex') - TYPE_ARGUMENT_LIST - PsiElement(LT)('<') - TYPE_PROJECTION - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('V') - PsiElement(GT)('>') - PsiElement(GT)('>') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('HashSet') + TYPE_ARGUMENT_LIST + PsiElement(LT)('<') + TYPE_PROJECTION + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Vertex') + TYPE_ARGUMENT_LIST + PsiElement(LT)('<') + TYPE_PROJECTION + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('V') + PsiElement(GT)('>') + PsiElement(GT)('>') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') diff --git a/idea/testData/psi/examples/Queue.jet b/idea/testData/psi/examples/Queue.jet index 375f9babd53..cec38da4f7a 100644 --- a/idea/testData/psi/examples/Queue.jet +++ b/idea/testData/psi/examples/Queue.jet @@ -5,7 +5,7 @@ class Queue : IPushPop { private var tail : Item = null override fun push(item : T) { - val i = new Item(item) + val i = Item(item) if (tail == null) { head = i tail = head @@ -17,7 +17,7 @@ class Queue : IPushPop { override fun pop() = if (head == null) - throw new UnderflowException() + throw UnderflowException() else { val result = head.data head = head.next diff --git a/idea/testData/psi/examples/Queue.txt b/idea/testData/psi/examples/Queue.txt index a81c41fa61f..6058924206b 100644 --- a/idea/testData/psi/examples/Queue.txt +++ b/idea/testData/psi/examples/Queue.txt @@ -164,13 +164,9 @@ JetFile: Queue.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Item') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Item') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT @@ -289,13 +285,9 @@ JetFile: Queue.jet THROW PsiElement(throw)('throw') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('UnderflowException') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('UnderflowException') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') diff --git a/idea/testData/psi/examples/Stack.jet b/idea/testData/psi/examples/Stack.jet index 426bc28c9a9..2929c5aa394 100644 --- a/idea/testData/psi/examples/Stack.jet +++ b/idea/testData/psi/examples/Stack.jet @@ -1,5 +1,5 @@ class Stack : IPushPop { - private val data = new ArrayList(); + private val data = ArrayList(); override fun push(item : T) { data.add(item) // Problem: I would like to write push(...) = data.add(...), but the types do not match diff --git a/idea/testData/psi/examples/Stack.txt b/idea/testData/psi/examples/Stack.txt index 5c410083db7..6a90e15f08e 100644 --- a/idea/testData/psi/examples/Stack.txt +++ b/idea/testData/psi/examples/Stack.txt @@ -40,21 +40,17 @@ JetFile: Stack.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('ArrayList') - TYPE_ARGUMENT_LIST - PsiElement(LT)('<') - TYPE_PROJECTION - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('T') - PsiElement(GT)('>') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('ArrayList') + TYPE_ARGUMENT_LIST + PsiElement(LT)('<') + TYPE_PROJECTION + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('T') + PsiElement(GT)('>') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') diff --git a/idea/testData/psi/examples/UpdateOperation.jet b/idea/testData/psi/examples/UpdateOperation.jet index 4d2aa3586f5..3388b6a8fac 100644 --- a/idea/testData/psi/examples/UpdateOperation.jet +++ b/idea/testData/psi/examples/UpdateOperation.jet @@ -1,11 +1,11 @@ class Pair(x : Int, y : Int) { class object { - fun copy(from : Pair, x : Int = from.x, y : Int = from.y) = new Pair(x, y) + fun copy(from : Pair, x : Int = from.x, y : Int = from.y) = Pair(x, y) } } // One can say: -val p = new Point(1, 2) +val p = Point(1, 2) val p1 = Point.Copy(p, x = 2) val p2 = Point.Copy(p1, y = -1) val p3 = Point.Copy(p) diff --git a/idea/testData/psi/examples/UpdateOperation.txt b/idea/testData/psi/examples/UpdateOperation.txt index c44384ac6be..77631d3f417 100644 --- a/idea/testData/psi/examples/UpdateOperation.txt +++ b/idea/testData/psi/examples/UpdateOperation.txt @@ -101,13 +101,9 @@ JetFile: UpdateOperation.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Pair') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Pair') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT @@ -133,13 +129,9 @@ JetFile: UpdateOperation.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('Point') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Point') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT diff --git a/idea/testData/psi/examples/collections/ArrayList.jet b/idea/testData/psi/examples/collections/ArrayList.jet index b199971098d..b42dbd9c7ca 100644 --- a/idea/testData/psi/examples/collections/ArrayList.jet +++ b/idea/testData/psi/examples/collections/ArrayList.jet @@ -11,13 +11,13 @@ class ArrayList : IMutableList { private fun checkVersion() { if (version != myVersion) - throw new ConcurrentModificationException() + throw ConcurrentModificationException() } override fun next() { checkVersion() if (hasNext) - throw new NoMoreElementsException() + throw NoMoreElementsException() data[index++] } @@ -40,7 +40,7 @@ class ArrayList : IMutableList { private fun checkIndex(index : Int) { if (index > used) - throw new IndexOutOfBoundsException(index) + throw IndexOutOfBoundsException(index) } override val isEmpty diff --git a/idea/testData/psi/examples/collections/ArrayList.txt b/idea/testData/psi/examples/collections/ArrayList.txt index d72a0f6aa37..d0fff8fe1c8 100644 --- a/idea/testData/psi/examples/collections/ArrayList.txt +++ b/idea/testData/psi/examples/collections/ArrayList.txt @@ -220,13 +220,9 @@ JetFile: ArrayList.jet THROW PsiElement(throw)('throw') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('ConcurrentModificationException') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('ConcurrentModificationException') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') @@ -267,13 +263,9 @@ JetFile: ArrayList.jet THROW PsiElement(throw)('throw') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('NoMoreElementsException') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('NoMoreElementsException') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') @@ -475,13 +467,9 @@ JetFile: ArrayList.jet THROW PsiElement(throw)('throw') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('IndexOutOfBoundsException') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('IndexOutOfBoundsException') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT diff --git a/idea/testData/psi/examples/collections/HashMap.jet b/idea/testData/psi/examples/collections/HashMap.jet index ab95747b4d4..03b4bfc1563 100644 --- a/idea/testData/psi/examples/collections/HashMap.jet +++ b/idea/testData/psi/examples/collections/HashMap.jet @@ -19,7 +19,7 @@ virtual class IMap { class HashableWrapper wraps (val obj : Any) : IHashable // equals and hashCode implementations are inherited -[inline] fun Any.hashable() : HashableWrapper = new HashableWrapper(this) +[inline] fun Any.hashable() : HashableWrapper = HashableWrapper(this) virtual class IHashingStrategy { fun equals(a : K, b : K) : Boolean @@ -50,9 +50,9 @@ class StrategyHashMap(hashingStrategy : IHashingStrategy) : IMap // where !(K : IHashable) - this() : this(new JavaObjectHashingStrategy()) {} + this() : this(JavaObjectHashingStrategy()) {} - //this() where (K : IHashable) : this(new DefaultHashingStrategy()) {} + //this() where (K : IHashable) : this(DefaultHashingStrategy()) {} //... } \ No newline at end of file diff --git a/idea/testData/psi/examples/collections/HashMap.txt b/idea/testData/psi/examples/collections/HashMap.txt index e44b6f58ef9..058a0951dc3 100644 --- a/idea/testData/psi/examples/collections/HashMap.txt +++ b/idea/testData/psi/examples/collections/HashMap.txt @@ -364,13 +364,9 @@ JetFile: HashMap.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('HashableWrapper') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('HashableWrapper') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT @@ -955,21 +951,17 @@ JetFile: HashMap.jet VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT - NEW - PsiElement(new)('new') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('JavaObjectHashingStrategy') - TYPE_ARGUMENT_LIST - PsiElement(LT)('<') - TYPE_PROJECTION - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('K') - PsiElement(GT)('>') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('JavaObjectHashingStrategy') + TYPE_ARGUMENT_LIST + PsiElement(LT)('<') + TYPE_PROJECTION + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('K') + PsiElement(GT)('>') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') @@ -979,7 +971,7 @@ JetFile: HashMap.jet PsiElement(LBRACE)('{') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n ') - PsiComment(EOL_COMMENT)('//this() where (K : IHashable) : this(new DefaultHashingStrategy()) {}') + PsiComment(EOL_COMMENT)('//this() where (K : IHashable) : this(DefaultHashingStrategy()) {}') PsiWhiteSpace('\n ') PsiComment(EOL_COMMENT)('//...') PsiWhiteSpace('\n\n') diff --git a/idea/testData/resolve/Basic.jet b/idea/testData/resolve/Basic.jet index 0a1a623207d..9156af87783 100644 --- a/idea/testData/resolve/Basic.jet +++ b/idea/testData/resolve/Basic.jet @@ -6,7 +6,7 @@ ~foo~fun foo(~foo.a~a : `std::Char`Char) = `foo.a`a`:std::Char` ~fooB~fun fooB() = `foo`foo('1')`:std::Char` ~foo.1~fun foo() : Int = (1.`std::Int.plus(Int)`plus(1))`:std::Int` - ~foo1~fun foo1() : `B`B = new `B()`B()`:B` + ~foo1~fun foo1() : `B`B = `B()`B()`:B` ~A.a~val a : `std::Int`Int } diff --git a/idea/testData/resolve/ClassObjects.jet b/idea/testData/resolve/ClassObjects.jet index 6e8eb80ac82..b4e898550d1 100644 --- a/idea/testData/resolve/ClassObjects.jet +++ b/idea/testData/resolve/ClassObjects.jet @@ -12,4 +12,4 @@ namespace Jet86 val a = `A`A.`A.x`x val c = `B`B.`!null`x -val d = new B().`B.x`x \ No newline at end of file +val d = B().`B.x`x \ No newline at end of file diff --git a/idea/testData/resolve/PrimaryConstructorParameters.jet b/idea/testData/resolve/PrimaryConstructorParameters.jet index cb95a47a1c7..7e571f43347 100644 --- a/idea/testData/resolve/PrimaryConstructorParameters.jet +++ b/idea/testData/resolve/PrimaryConstructorParameters.jet @@ -1,5 +1,5 @@ -class C(~x~x : Int, ~y~val y : Int) : Base(`x`x /*parameter*/), Base1 by new Base1(`x`x) { +class C(~x~x : Int, ~y~val y : Int) : Base(`x`x /*parameter*/), Base1 by Base1(`x`x) { var z = `x`x // parameter get() = `$x`x // property diff --git a/idea/testData/resolve/PrimaryConstructors.jet b/idea/testData/resolve/PrimaryConstructors.jet index d02894b39ba..ec09171ba32 100644 --- a/idea/testData/resolve/PrimaryConstructors.jet +++ b/idea/testData/resolve/PrimaryConstructors.jet @@ -5,7 +5,7 @@ class A(~a~val a : Int) { } fun test() { - ~va~val a = new A() + ~va~val a = A() `va`a.`$a`a`:std::Int` a.`b`b`:std::Int` a.`f`f()`:std::Int` diff --git a/idea/testData/resolve/Projections.jet b/idea/testData/resolve/Projections.jet index a008e2488d3..4c017746adf 100644 --- a/idea/testData/resolve/Projections.jet +++ b/idea/testData/resolve/Projections.jet @@ -1,56 +1,56 @@ -class In { +class In() { ~In.f:T->Unit~fun f(t : T) : Unit {} ~In.f:Int->Int~fun f(t : Int) : Int {} ~In.f1~fun f1(t : T) : Unit {} } -class Out { +class Out() { ~Out.f~fun f() : T {} ~Out.f(a)~fun f(a : Int) : Int {a} } -class Inv { +class Inv() { ~Inv.f~fun f(t : T) : T {t} ~Inv.inf~fun inf(t : T) : Unit {} ~Inv.outf~fun outf() : T {} } fun testInOut() { - new In().`In.f:T->Unit`f("1"); + In().`In.f:T->Unit`f("1"); (return : In).`In.f:T->Unit`f("1"); (return : In).`!`f("1") (return : In<*>).`!`f("1"); - new In().`In.f:Int->Int`f(1); + In().`In.f:Int->Int`f(1); (return : In).`In.f:Int->Int`f(1); (return : In).`In.f:Int->Int`f(1) (return : In).`!`f1(1) (return : In<*>).`In.f:Int->Int`f(1); - new Out().`Out.f(a)`f(1) + Out().`Out.f(a)`f(1) (return : Out).`Out.f(a)`f(1) (return : Out).`Out.f(a)`f(1) (return : Out<*>).`Out.f(a)`f(1) - new Out().`Out.f`f() + Out().`Out.f`f() (return : Out).`Out.f`f() (return : Out).`Out.f`f() (return : Out<*>).`Out.f`f() - new Inv().`Inv.f`f(1) + Inv().`Inv.f`f(1) (return : Inv).`Inv.f`f(1) (return : Inv).`!`f(1) (return : Inv<*>).`!`f(1) - new Inv().`Inv.inf`inf(1) + Inv().`Inv.inf`inf(1) (return : Inv).`Inv.inf`inf(1) (return : Inv).`!`inf(1) (return : Inv<*>).`!`inf(1) - new Inv().`Inv.outf`outf() + Inv().`Inv.outf`outf() ((return : Inv).`Inv.outf`outf())`:std::Any` (return : Inv).`Inv.outf`outf() (return : Inv<*>).`Inv.outf`outf() - new Inv().`Inv.outf`outf(1) + Inv().`Inv.outf`outf(1) } \ No newline at end of file diff --git a/idea/testData/resolve/ResolveOfInfixExpressions.jet b/idea/testData/resolve/ResolveOfInfixExpressions.jet index 005e8b3b889..c7f22629218 100644 --- a/idea/testData/resolve/ResolveOfInfixExpressions.jet +++ b/idea/testData/resolve/ResolveOfInfixExpressions.jet @@ -23,13 +23,13 @@ fun f_plus(): Int { ~t~fun <~t.T~T> t(~t.t~t : `t.T`T) : `t.T`T { `t`t(1)`:std::Int` `t`t<`t.T`T>(`t.t`t)`:t.T` - new `X()`X<`t.T`T>() + `X()`X<`t.T`T>() 1 `std::Int.plus(Int)`+ 1 1 `std::Int.plus(Int)`+= 1 - new X() `plus`+ "1" - new X() `plus`plus "sadfas" - new X().`plus`plus("") - val x = new X() + X() `plus`+ "1" + X() `plus`plus "sadfas" + X().`plus`plus("") + val x = X() x `minus`- "" x `times`* "" x `div`/ "" @@ -61,7 +61,7 @@ fun f_plus(): Int { fun tt(t : T) : T { val x : List = 0 x`java::java.util.List.get()`[1] - val foo = new `Bar()`Bar() + val foo = `Bar()`Bar() foo`!`[null, 1] foo`get2`[1, 1] foo`get1`[1] @@ -72,7 +72,7 @@ fun tt(t : T) : T { x`!`[null] = null (x`!`[null, 2]) = null (`not`!foo)[1]`:std::Char` - val y = new Bar() + val y = Bar() y`inc`++ `inc`++y `dec`--y @@ -87,13 +87,13 @@ fun tt(t : T) : T { } -class UnitIncDec { +class UnitIncDec() { ~uinc~fun inc() : Unit ~udec~fun dec() : Unit } fun testUnitIncDec() { - var x = new UnitIncDec() + var x = UnitIncDec() x`uinc`++ x`udec`-- } \ No newline at end of file diff --git a/idea/testData/resolve/ResolveToJava.jet b/idea/testData/resolve/ResolveToJava.jet index 1d41eb154ca..4991400172d 100644 --- a/idea/testData/resolve/ResolveToJava.jet +++ b/idea/testData/resolve/ResolveToJava.jet @@ -8,7 +8,7 @@ fun foo(~a~a : `std::Array`Array<`std::Int`Int>) : `java::java.util.List`List { fun foo(o : `java::java.lang.Object`Object, l : `java::java.util`util.`java::java.util.List`List) : `java::java.util.List`List {} -~A~class A { +~A~class A() { fun f(a : `java::java.util`util.`java::java.util.List`List) {} fun f(a : `java::java.util.List`List) {} @@ -31,7 +31,7 @@ class B : `java::java.lang.Object`Object { } fun barrr() : `std::Int`Int { - `foo`foo(new `A`A()) + `foo`foo(`A`A()) } } @@ -40,7 +40,7 @@ class B : `java::java.lang.Object`Object { } fun t(t : T) : T { - `c`c(new java.lang.Integer(1)) + `c`c(java.lang.Integer(1)) System.out.`java::java.io.PrintStream.print(Object)`print(t) System.out.`java::java.io.PrintStream.print(char[])`print(null : Array?) System.out.`java::java.io.PrintStream.print(Object)`print(null : Object?) diff --git a/idea/testData/resolve/ScopeInteraction.jet b/idea/testData/resolve/ScopeInteraction.jet index 4647682f33d..ca04b89b8e8 100644 --- a/idea/testData/resolve/ScopeInteraction.jet +++ b/idea/testData/resolve/ScopeInteraction.jet @@ -5,5 +5,5 @@ var xxxx = 1 } fun foo() { - new `SimpleClass`SimpleClass(1).`!`xxxx + `SimpleClass`SimpleClass(1).`!`xxxx } \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java b/idea/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java index b7128b97cfc..3f154a44c31 100644 --- a/idea/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java +++ b/idea/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java @@ -101,7 +101,7 @@ public class ControlStructuresTest extends CodegenTestCase { } public void testThrowCheckedException() throws Exception { - loadText("fun foo() { throw new Exception(); }"); + loadText("fun foo() { throw Exception(); }"); final Method main = generateFunction(); boolean caught = false; try { diff --git a/idea/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java b/idea/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java index f69c722c0e4..b3f4b0353b1 100644 --- a/idea/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java +++ b/idea/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java @@ -176,7 +176,7 @@ public class NamespaceGenTest extends CodegenTestCase { } public void testJavaConstructor() throws Exception { - loadText("fun foo(): StringBuilder = new StringBuilder()"); + loadText("fun foo(): StringBuilder = StringBuilder()"); System.out.println(generateToText()); final Method main = generateFunction(); final Object result = main.invoke(null); @@ -184,7 +184,7 @@ public class NamespaceGenTest extends CodegenTestCase { } public void testJavaConstructorWithParameters() throws Exception { - loadText("fun foo(): StringBuilder = new StringBuilder(\"beer\")"); + loadText("fun foo(): StringBuilder = StringBuilder(\"beer\")"); final Method main = generateFunction(); final StringBuilder result = (StringBuilder) main.invoke(null); assertEquals("beer", result.toString()); @@ -361,7 +361,7 @@ public class NamespaceGenTest extends CodegenTestCase { } public void testArrayNew() throws Exception { - loadText("fun foo() = new Array(4)"); + loadText("fun foo() = Array(4)"); final Method main = generateFunction(); int[] result = (int[]) main.invoke(null); assertEquals(4, result.length); diff --git a/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java b/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java index fd3ee9c5104..ec7f9200eb8 100644 --- a/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java +++ b/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java @@ -347,26 +347,26 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase { } public void testNew() throws Exception { - assertType("new Base_T()", "Base_T"); + assertType("Base_T()", "Base_T"); } public void testPropertiesInClasses() throws Exception { - assertType("new Properties().p", "Int"); - assertType("new Props().p", "Int"); - assertType("new Props().p", "Int"); - assertType("new Props().p.p", "Int"); + assertType("Properties().p", "Int"); + assertType("Props().p", "Int"); + assertType("Props().p", "Int"); + assertType("Props().p.p", "Int"); assertType("(return : Props).p", "Any?"); } public void testOverloads() throws Exception { - assertType("new Functions().f()", "Unit"); - assertType("new Functions().f(1)", "Int"); - assertType("new Functions().f(1.0)", (String) null); - assertType("new Functions().f((1, 1))", "Double"); - assertType("new Functions().f(1.0)", "Any"); - assertType("new Functions().f(\"\")", "Byte"); - assertType("new Functions().f(1)", (String) null); + assertType("Functions().f()", "Unit"); + assertType("Functions().f(1)", "Int"); + assertType("Functions().f(1.0)", (String) null); + assertType("Functions().f((1, 1))", "Double"); + assertType("Functions().f(1.0)", "Any"); + assertType("Functions().f(\"\")", "Byte"); + assertType("Functions().f(1)", (String) null); assertType("f()", "Unit"); assertType("f(1)", "Int"); @@ -430,9 +430,9 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase { assertType("true && false", "Boolean"); assertType("true || false", "Boolean"); assertType("null ?: false", "Boolean"); - assertType("new WithPredicate()?isValid()", "WithPredicate?"); - assertType("new WithPredicate()?isValid(1)", "WithPredicate?"); - assertType("new WithPredicate()?p", "WithPredicate?"); + assertType("WithPredicate()?isValid()", "WithPredicate?"); + assertType("WithPredicate()?isValid(1)", "WithPredicate?"); + assertType("WithPredicate()?p", "WithPredicate?"); } public void testSupertypes() throws Exception { @@ -539,35 +539,35 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase { private class ClassDefinitions { private Map CLASSES = new HashMap(); private String[] CLASS_DECLARATIONS = { - "open class Base_T", - "open class Derived_T : Base_T", - "open class DDerived_T : Derived_T", - "open class DDerived1_T : Derived_T", - "open class DDerived2_T : Derived_T, Base_T", - "open class Base_inT", - "open class Derived_inT : Base_inT", - "open class Derived1_inT : Base_inT, Derived_T", - "open class Base_outT", - "open class Derived_outT : Base_outT", - "open class MDerived_T> : Base_outT, Base_T", - "class Properties { val p : Int }", - "class Props { val p : T }", - "class Functions { " + + "open class Base_T()", + "open class Derived_T() : Base_T", + "open class DDerived_T() : Derived_T", + "open class DDerived1_T() : Derived_T", + "open class DDerived2_T() : Derived_T, Base_T", + "open class Base_inT()", + "open class Derived_inT() : Base_inT", + "open class Derived1_inT() : Base_inT, Derived_T", + "open class Base_outT()", + "open class Derived_outT() : Base_outT", + "open class MDerived_T() : Base_outT, Base_T", + "class Properties() { val p : Int }", + "class Props() { val p : T }", + "class Functions() { " + "fun f() : Unit {} " + "fun f(a : Int) : Int {} " + "fun f(a : T) : Any {} " + "fun f(a : (Int, Int)) : T {} " + "fun f(a : E) : T {} " + "}", - "class WithPredicate { " + + "class WithPredicate() { " + "fun isValid() : Boolean " + "fun isValid(x : Int) : Boolean " + "val p : Boolean " + "}", - "open class List", + "open class List()", "open class AbstractList : List", - "open class ArrayList : Any, AbstractList, List" + "open class ArrayList() : Any, AbstractList, List" }; private String[] FUNCTION_DECLARATIONS = { @@ -597,6 +597,11 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase { @NotNull @Override public FunctionGroup getFunctionGroup(@NotNull String name) { + ClassifierDescriptor classifier = getClassifier(name); + if (classifier instanceof ClassDescriptor) { + ClassDescriptor classDescriptor = (ClassDescriptor) classifier; + return classDescriptor.getConstructors(); + } WritableFunctionGroup writableFunctionGroup = new WritableFunctionGroup(name); for (String funDecl : FUNCTION_DECLARATIONS) { FunctionDescriptor functionDescriptor = classDescriptorResolver.resolveFunctionDescriptor(JetStandardClasses.getAny(), this, JetChangeUtil.createFunction(getProject(), funDecl));