/* * Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ /* * @test * @bug 7021614 8031212 8273244 8284908 8200337 8288619 * @summary extend com.sun.source API to support parsing javadoc comments * @modules jdk.compiler/com.sun.tools.javac.api * jdk.compiler/com.sun.tools.javac.file * jdk.compiler/com.sun.tools.javac.tree * jdk.compiler/com.sun.tools.javac.util * @build DocCommentTester * @run main DocCommentTester SeeTest.java */ class SeeTest { /** * abc. * @see "String" */ void quoted_text() { } /* DocComment[DOC_COMMENT, pos:1 firstSentence: 1 Text[TEXT, pos:1, abc.] body: empty block tags: 1 See[SEE, pos:7 reference: 1 Text[TEXT, pos:12, "String"] ] ] */ /** * Test '@' in quoted string. * @see "{@code}" */ void at_sign_in_quoted_string() { } /* DocComment[DOC_COMMENT, pos:1 firstSentence: 1 Text[TEXT, pos:1, Test_'@'_in_quoted_string.] body: empty block tags: 1 See[SEE, pos:29 reference: 1 Text[TEXT, pos:34, "{@code}"] ] ] */ /** * Test new line before quoted string. * @see * "{@code}" */ @PrettyCheck(false) void new_line_before_quoted_string() { } /* DocComment[DOC_COMMENT, pos:1 firstSentence: 1 Text[TEXT, pos:1, Test_new_line_before_quoted_string.] body: empty block tags: 1 See[SEE, pos:38 reference: 1 Text[TEXT, pos:47, "{@code}"] ] ] */ /** * abc. * @see url */ void url() { } /* DocComment[DOC_COMMENT, pos:1 firstSentence: 1 Text[TEXT, pos:1, abc.] body: empty block tags: 1 See[SEE, pos:7 reference: 3 StartElement[START_ELEMENT, pos:12 name:a attributes: 1 Attribute[ATTRIBUTE, pos:15 name: href vkind: DOUBLE value: 1 Text[TEXT, pos:21, url] ] ] Text[TEXT, pos:26, url] EndElement[END_ELEMENT, pos:29, a] ] ] */ /** * abc. * @see String text */ void string() { } /* DocComment[DOC_COMMENT, pos:1 firstSentence: 1 Text[TEXT, pos:1, abc.] body: empty block tags: 1 See[SEE, pos:7 reference: 2 Reference[REFERENCE, pos:12, String] Text[TEXT, pos:19, text] ] ] */ /** * abc. * @see java.lang.String text */ void j_l_string() { } /* DocComment[DOC_COMMENT, pos:1 firstSentence: 1 Text[TEXT, pos:1, abc.] body: empty block tags: 1 See[SEE, pos:7 reference: 2 Reference[REFERENCE, pos:12, java.lang.String] Text[TEXT, pos:29, text] ] ] */ /** * abc. * @see java.lang.String#length text */ void j_l_string_length() { } /* DocComment[DOC_COMMENT, pos:1 firstSentence: 1 Text[TEXT, pos:1, abc.] body: empty block tags: 1 See[SEE, pos:7 reference: 2 Reference[REFERENCE, pos:12, java.lang.String#length] Text[TEXT, pos:36, text] ] ] */ /** * abc. * @see java.lang.String#matches(String regex) text */ void j_l_string_matches() { } /* DocComment[DOC_COMMENT, pos:1 firstSentence: 1 Text[TEXT, pos:1, abc.] body: empty block tags: 1 See[SEE, pos:7 reference: 2 Reference[REFERENCE, pos:12, java.lang.String#matches(String_regex)] Text[TEXT, pos:51, text] ] ] */ /** * abc. * @see java.lang.String##fragment text */ void j_l_string_anchor() { } /* DocComment[DOC_COMMENT, pos:1 firstSentence: 1 Text[TEXT, pos:1, abc.] body: empty block tags: 1 See[SEE, pos:7 reference: 2 Reference[REFERENCE, pos:12, java.lang.String##fragment] Text[TEXT, pos:39, text] ] ] */ /** * abc. * @see 123 text */ void bad_numeric() { } /* DocComment[DOC_COMMENT, pos:1 firstSentence: 1 Text[TEXT, pos:1, abc.] body: empty block tags: 1 Erroneous[ERRONEOUS, pos:7, prefPos:19 code: compiler.err.dc.unexpected.content body: @see_123_text ] ] */ }