From f5af43ed243d6753ae567f0250b36a3d0081f39e Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 10 Sep 2013 18:01:35 +0400 Subject: [PATCH] Cleanup descriptors in frontend Remove useless classes/interfaces, inline useless superclasses, make the code greener --- .../jet/lang/descriptors/Annotation.java | 20 -------------- .../jet/lang/descriptors/FqNamed.java | 26 ------------------- .../descriptors/ModuleDescriptorImpl.java | 2 +- .../MutableValueParameterDescriptor.java | 24 ----------------- .../lang/descriptors/NamespaceDescriptor.java | 8 ++++-- .../descriptors/ValueParameterDescriptor.java | 3 +-- .../impl/DeclarationDescriptorImpl.java | 3 +-- .../descriptors/impl/ExtensionDescriptor.java | 20 -------------- .../impl/ValueParameterDescriptorImpl.java | 3 +-- .../jet/lang/resolve/DescriptorResolver.java | 10 +++---- .../recursiveProcessor/declarations.txt | 4 +-- 11 files changed, 17 insertions(+), 106 deletions(-) delete mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/descriptors/Annotation.java delete mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/descriptors/FqNamed.java delete mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/descriptors/MutableValueParameterDescriptor.java delete mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/ExtensionDescriptor.java diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/Annotation.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/Annotation.java deleted file mode 100644 index 4652f64ff5d..00000000000 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/Annotation.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.lang.descriptors; - -public interface Annotation { -} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/FqNamed.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/FqNamed.java deleted file mode 100644 index 754c0b49cbc..00000000000 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/FqNamed.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.lang.descriptors; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.resolve.name.FqName; - -public interface FqNamed { - - @NotNull - FqName getFqName(); -} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptorImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptorImpl.java index cf9499ef815..96254577e3e 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptorImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ModuleDescriptorImpl.java @@ -32,7 +32,7 @@ import javax.inject.Inject; import java.util.Collections; import java.util.List; -public class ModuleDescriptorImpl extends DeclarationDescriptorImpl implements ClassOrNamespaceDescriptor, ModuleDescriptor { +public class ModuleDescriptorImpl extends DeclarationDescriptorImpl implements ModuleDescriptor { private NamespaceDescriptor rootNamepsace; private ModuleConfiguration moduleConfiguration; private final List defaultImports; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/MutableValueParameterDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/MutableValueParameterDescriptor.java deleted file mode 100644 index 1549ecbb1b2..00000000000 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/MutableValueParameterDescriptor.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.lang.descriptors; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.types.JetType; - -public interface MutableValueParameterDescriptor extends ValueParameterDescriptor { - void setType(@NotNull JetType type); -} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/NamespaceDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/NamespaceDescriptor.java index ab15d761170..d796606986f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/NamespaceDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/NamespaceDescriptor.java @@ -17,14 +17,18 @@ package org.jetbrains.jet.lang.descriptors; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.descriptors.annotations.Annotated; import org.jetbrains.jet.lang.descriptors.impl.NamespaceDescriptorParent; +import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.scopes.JetScope; -public interface NamespaceDescriptor extends Annotated, Named, FqNamed, ClassOrNamespaceDescriptor, NamespaceDescriptorParent { +public interface NamespaceDescriptor extends ClassOrNamespaceDescriptor, NamespaceDescriptorParent { @NotNull JetScope getMemberScope(); + @Override @NotNull NamespaceDescriptorParent getContainingDeclaration(); + + @NotNull + FqName getFqName(); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ValueParameterDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ValueParameterDescriptor.java index 262a44541d3..c367471d058 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ValueParameterDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ValueParameterDescriptor.java @@ -18,13 +18,12 @@ package org.jetbrains.jet.lang.descriptors; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.lang.descriptors.annotations.Annotated; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.types.JetType; import java.util.Set; -public interface ValueParameterDescriptor extends VariableDescriptor, Annotated { +public interface ValueParameterDescriptor extends VariableDescriptor { /** * Returns the 0-based index of the value parameter in the parameter list of its containing function. * diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/DeclarationDescriptorImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/DeclarationDescriptorImpl.java index d8801538579..dcc59d91e39 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/DeclarationDescriptorImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/DeclarationDescriptorImpl.java @@ -19,7 +19,6 @@ package org.jetbrains.jet.lang.descriptors.impl; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor; -import org.jetbrains.jet.lang.descriptors.Named; import org.jetbrains.jet.lang.descriptors.annotations.AnnotatedImpl; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.resolve.name.Name; @@ -27,7 +26,7 @@ import org.jetbrains.jet.renderer.DescriptorRenderer; import java.util.List; -public abstract class DeclarationDescriptorImpl extends AnnotatedImpl implements Named, DeclarationDescriptor { +public abstract class DeclarationDescriptorImpl extends AnnotatedImpl implements DeclarationDescriptor { @NotNull private final Name name; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/ExtensionDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/ExtensionDescriptor.java deleted file mode 100644 index c1aed541aa7..00000000000 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/ExtensionDescriptor.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.lang.descriptors.impl; - -public class ExtensionDescriptor { -} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/ValueParameterDescriptorImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/ValueParameterDescriptorImpl.java index 464f1bad64c..d8ff557aa12 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/ValueParameterDescriptorImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/impl/ValueParameterDescriptorImpl.java @@ -30,7 +30,7 @@ import java.util.Collections; import java.util.List; import java.util.Set; -public class ValueParameterDescriptorImpl extends VariableDescriptorImpl implements MutableValueParameterDescriptor { +public class ValueParameterDescriptorImpl extends VariableDescriptorImpl implements ValueParameterDescriptor { private Boolean hasDefaultValue; private final boolean declaresDefaultValue; @@ -72,7 +72,6 @@ public class ValueParameterDescriptorImpl extends VariableDescriptorImpl impleme this.varargElementType = varargElementType; } - @Override public void setType(@NotNull JetType type) { setOutType(type); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java index 84114f3c18e..6b97bdd28d8 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/DescriptorResolver.java @@ -493,7 +493,7 @@ public class DescriptorResolver { } @NotNull - public MutableValueParameterDescriptor resolveValueParameterDescriptor( + public ValueParameterDescriptorImpl resolveValueParameterDescriptor( JetScope scope, DeclarationDescriptor declarationDescriptor, JetParameter valueParameter, int index, JetType type, BindingTrace trace ) { @@ -502,7 +502,7 @@ public class DescriptorResolver { } @NotNull - public MutableValueParameterDescriptor resolveValueParameterDescriptorWithAnnotationArguments( + public ValueParameterDescriptorImpl resolveValueParameterDescriptorWithAnnotationArguments( JetScope scope, DeclarationDescriptor declarationDescriptor, JetParameter valueParameter, int index, JetType type, BindingTrace trace ) { @@ -511,7 +511,7 @@ public class DescriptorResolver { } @NotNull - private MutableValueParameterDescriptor resolveValueParameterDescriptor( + private static ValueParameterDescriptorImpl resolveValueParameterDescriptor( DeclarationDescriptor declarationDescriptor, JetParameter valueParameter, int index, JetType type, BindingTrace trace, List annotations @@ -522,7 +522,7 @@ public class DescriptorResolver { varargElementType = type; variableType = DescriptorUtils.getVarargParameterType(type); } - MutableValueParameterDescriptor valueParameterDescriptor = new ValueParameterDescriptorImpl( + ValueParameterDescriptorImpl valueParameterDescriptor = new ValueParameterDescriptorImpl( declarationDescriptor, index, annotations, @@ -1166,7 +1166,7 @@ public class DescriptorResolver { } } - MutableValueParameterDescriptor valueParameterDescriptor = + ValueParameterDescriptorImpl valueParameterDescriptor = resolveValueParameterDescriptor(scope, setterDescriptor, parameter, 0, type, trace); setterDescriptor.initialize(valueParameterDescriptor); } diff --git a/compiler/testData/recursiveProcessor/declarations.txt b/compiler/testData/recursiveProcessor/declarations.txt index 89fd476d728..ebc455c4863 100644 --- a/compiler/testData/recursiveProcessor/declarations.txt +++ b/compiler/testData/recursiveProcessor/declarations.txt @@ -8,7 +8,7 @@ .nestedClassObjFunc:SimpleFunctionDescriptor .this:ReceiverParameterDescriptor :ClassDescriptor -:MutableValueParameterDescriptor +:ValueParameterDescriptor Class.:PropertyGetterDescriptor Class.():ConstructorDescriptor Class.classFunc:SimpleFunctionDescriptor @@ -38,7 +38,7 @@ Trait.this:ReceiverParameterDescriptor Trait.traitFunc:SimpleFunctionDescriptor Trait.traitProp:PropertyDescriptor Trait:ClassDescriptor -a:MutableValueParameterDescriptor +a:ValueParameterDescriptor fake Class.:PropertyGetterDescriptor fake Class.traitFunc:SimpleFunctionDescriptor fake Class.traitProp:PropertyDescriptor