import eclipse 3.1 M4 compiler
[org.ibex.tool.git] / src / org / eclipse / jdt / internal / compiler / ast / JavadocReturnStatement.java
index 8a53e1b..d541e00 100644 (file)
@@ -16,6 +16,7 @@ import org.eclipse.jdt.internal.compiler.lookup.*;
 
 public class JavadocReturnStatement extends ReturnStatement {
        public char[] description;
+       public boolean empty = true;
 
        public JavadocReturnStatement(int s, int e, char[] descr) {
                super(null, s, e);
@@ -23,9 +24,12 @@ public class JavadocReturnStatement extends ReturnStatement {
                this.bits |= InsideJavadoc;
        }
 
+       /* (non-Javadoc)
+        * @see org.eclipse.jdt.internal.compiler.ast.Statement#resolve(org.eclipse.jdt.internal.compiler.lookup.BlockScope)
+        */
        public void resolve(BlockScope scope) {
                MethodScope methodScope = scope.methodScope();
-               MethodBinding methodBinding;
+               MethodBinding methodBinding = null;
                TypeBinding methodType =
                        (methodScope.referenceContext instanceof AbstractMethodDeclaration)
                                ? ((methodBinding = ((AbstractMethodDeclaration) methodScope.referenceContext).binding) == null 
@@ -34,10 +38,22 @@ public class JavadocReturnStatement extends ReturnStatement {
                                : VoidBinding;
                if (methodType == null || methodType == VoidBinding) {
                        scope.problemReporter().javadocUnexpectedTag(this.sourceStart, this.sourceEnd);
+               } else if (this.empty) {
+                       scope.problemReporter().javadocEmptyReturnTag(this.sourceStart, this.sourceEnd);
                }
        }
 
        /* (non-Javadoc)
+        * @see org.eclipse.jdt.internal.compiler.ast.Statement#printStatement(int, java.lang.StringBuffer)
+        */
+       public StringBuffer printStatement(int tab, StringBuffer output) {
+               printIndent(tab, output).append("return"); //$NON-NLS-1$
+               if (description != null )
+                       output.append(' ').append(description);
+               return output;
+       }
+
+       /* (non-Javadoc)
         * Redefine to capture javadoc specific signatures
         * @see org.eclipse.jdt.internal.compiler.ast.ASTNode#traverse(org.eclipse.jdt.internal.compiler.ASTVisitor, org.eclipse.jdt.internal.compiler.lookup.BlockScope)
         */