This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 203234
Collapse All | Expand All

(-)a/dlight.core.stack/src/org/netbeans/modules/dlight/core/stack/storage/impl/FunctionImpl.java (-1 / +3 lines)
Lines 109-115 Link Here
109
109
110
    @Override
110
    @Override
111
    public String getQuilifiedName() {
111
    public String getQuilifiedName() {
112
        return FunctionNameUtils.getFunctionQName(name);
112
        String functionQName = FunctionNameUtils.getFunctionQName(name);
113
        System.out.println(name +"->"+ functionQName);
114
        return functionQName;
113
    }
115
    }
114
116
115
    @Override
117
    @Override
(-)a/dlight.core.stack/src/org/netbeans/modules/dlight/core/stack/utils/FunctionNameUtils.java (-2 / +10 lines)
Lines 144-150 Link Here
144
                    templateLevel++;
144
                    templateLevel++;
145
                    break;
145
                    break;
146
                case '>':
146
                case '>':
147
                    templateLevel++;
147
                    templateLevel--;
148
                    break;
148
                    break;
149
                case 'o':
149
                case 'o':
150
                    if (functionSignature.substring(i).startsWith("operator") && // NOI18N
150
                    if (functionSignature.substring(i).startsWith("operator") && // NOI18N
Lines 184-193 Link Here
184
                    }
184
                    }
185
                    break;
185
                    break;
186
                case '[':
186
                case '[':
187
                    start = i + 1;
187
                    if (templateLevel == 0) {
188
                        if (!isOperator) {
189
                            start = i + 1;
190
                        }
191
                    }
188
                    break;
192
                    break;
189
                case '(':
193
                case '(':
194
                    return functionSignature.substring(start, i);
190
                case ']':
195
                case ']':
196
                    if (isOperator && i > 1 && functionSignature.charAt(i-1) == '[') {
197
                        return functionSignature.substring(start, i+1);
198
                    }
191
                    return functionSignature.substring(start, i);
199
                    return functionSignature.substring(start, i);
192
            }
200
            }
193
        }
201
        }
(-)a/dlight.core.stack/test/unit/src/org/netbeans/modules/dlight/core/stack/utils/FunctionNameUtilsTest.java (+141 lines)
Line 0 Link Here
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2011 Oracle and/or its affiliates. All rights reserved.
5
 *
6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7
 * Other names may be trademarks of their respective owners.
8
 *
9
 * The contents of this file are subject to the terms of either the GNU
10
 * General Public License Version 2 only ("GPL") or the Common
11
 * Development and Distribution License("CDDL") (collectively, the
12
 * "License"). You may not use this file except in compliance with the
13
 * License. You can obtain a copy of the License at
14
 * http://www.netbeans.org/cddl-gplv2.html
15
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
16
 * specific language governing permissions and limitations under the
17
 * License.  When distributing the software, include this License Header
18
 * Notice in each file and include the License file at
19
 * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
20
 * particular file as subject to the "Classpath" exception as provided
21
 * by Oracle in the GPL Version 2 section of the License file that
22
 * accompanied this code. If applicable, add the following below the
23
 * License Header, with the fields enclosed by brackets [] replaced by
24
 * your own identifying information:
25
 * "Portions Copyrighted [year] [name of copyright owner]"
26
 *
27
 * If you wish your version of this file to be governed by only the CDDL
28
 * or only the GPL Version 2, indicate your decision by adding
29
 * "[Contributor] elects to include this software in this distribution
30
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
31
 * single choice of license, a recipient has the option to distribute
32
 * your version of this file under either the CDDL, the GPL Version 2 or
33
 * to extend the choice of license to its licensees as provided above.
34
 * However, if you add GPL Version 2 code and therefore, elected the GPL
35
 * Version 2 license, then the option applies only if the new code is
36
 * made subject to such option by the copyright holder.
37
 *
38
 * Contributor(s):
39
 *
40
 * Portions Copyrighted 2011 Sun Microsystems, Inc.
41
 */
42
package org.netbeans.modules.dlight.core.stack.utils;
43
44
import org.junit.After;
45
import org.junit.AfterClass;
46
import org.junit.Before;
47
import org.junit.BeforeClass;
48
import org.junit.Test;
49
import static org.junit.Assert.*;
50
51
/**
52
 *
53
 * @author Alexander Simon
54
 */
55
public class FunctionNameUtilsTest {
56
57
    public FunctionNameUtilsTest() {
58
    }
59
60
    @BeforeClass
61
    public static void setUpClass() throws Exception {
62
    }
63
64
    @AfterClass
65
    public static void tearDownClass() throws Exception {
66
    }
67
68
    @Before
69
    public void setUp() {
70
    }
71
72
    @After
73
    public void tearDown() {
74
    }
75
76
    @Test
77
    public void testOperator1() {
78
        String name = FunctionNameUtils.getFunctionQName("int*Matrix<int>::operator[](unsigned)");
79
        assertEquals("Matrix<int>::operator[]", name);
80
    }
81
    
82
    @Test
83
    public void testOperator2() {
84
        String name = FunctionNameUtils.getFunctionQName("std::complex<long double>&std::complex<long double>::operator*=(const std::complex<long double>&)");
85
        assertEquals("std::complex<long double>::operator*=", name);
86
    }
87
    
88
    @Test
89
    public void testOperator3() {
90
        String name = FunctionNameUtils.getFunctionQName("__type_0 std::norm<long double>(const std::complex<__type_0>&)");
91
        assertEquals("std::norm<long double>", name);
92
    }
93
94
    @Test
95
    public void testOperator4() {
96
        String name = FunctionNameUtils.getFunctionQName("long double std::complex<long double>::real()const");
97
        assertEquals("std::complex<long double>::real", name);
98
    }
99
    
100
    @Test
101
    public void testOperator5() {
102
        String name = FunctionNameUtils.getFunctionQName("long double std::sqrt(long double)");
103
        assertEquals("std::sqrt", name);
104
    }
105
    
106
    @Test
107
    public void testOperator6() {
108
        String name = FunctionNameUtils.getFunctionQName("std::complex<__type_0>std::operator+<long double>(const std::complex<__type_0>&,const std::complex<__type_0>&)");
109
        assertEquals("std::complex<__type_0>std::operator+<long double>", name);
110
    }
111
112
    @Test
113
    public void testOperator7() {
114
        String name = FunctionNameUtils.getFunctionQName("std::complex<__type_0>std::operator*<long double>(const std::complex<__type_0>&,const std::complex<__type_0>&)");
115
        assertEquals("std::complex<__type_0>std::operator*<long double>", name);
116
    }
117
118
    @Test
119
    public void testOperator8() {
120
        String name = FunctionNameUtils.getFunctionQName("std::complex<long double>*Matrix<std::complex<long double> >::operator[](unsigned)");
121
        assertEquals("Matrix<std::complex<long double> >::operator[]", name);
122
    }
123
124
    @Test
125
    public void testOperator9() {
126
        String name = FunctionNameUtils.getFunctionQName("std::complex<long double>::complex #Nvariant 1(const long double&,const long double&)");
127
        assertEquals("std::complex<long double>::complex", name);
128
    }
129
    
130
    @Test
131
    public void testOperator10() {
132
        String name = FunctionNameUtils.getFunctionQName("std::ostream&std::operator<<(std::ostream&,const Customer&)");
133
        assertEquals("std::operator<<", name);
134
    }
135
    
136
    @Test
137
    public void testOperator11() {
138
        String name = FunctionNameUtils.getFunctionQName("std::ostream&std::operator>>(std::ostream&,const Customer&)");
139
        assertEquals("std::operator>>", name);
140
    }
141
}

Return to bug 203234