From 982030280e32009e57d1a7f4cc075597629e2ef8 Mon Sep 17 00:00:00 2001 From: Renaud Durlin Date: Mon, 13 Jul 2015 21:11:24 +0200 Subject: [PATCH] Minor fix to declaration_to_parts --- cpp/ast.py | 14 +++++--------- test/expected.txt | 2 +- test_ast.py | 12 ++++++------ 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/cpp/ast.py b/cpp/ast.py index d4dc317..0103950 100644 --- a/cpp/ast.py +++ b/cpp/ast.py @@ -526,11 +526,7 @@ def declaration_to_parts(self, parts, needs_name_removed): parts, i + 1) templated_types = self.to_type(templated_tokens) i = new_end - 1 - # Don't add a spurious :: to data members being initialized. - next_index = i + 1 - if next_index < end and parts[next_index].name == '::': - i += 1 - elif p.name not in ('*', '&', '>'): + elif p.name not in ('*', '&'): if last_type == tokenize.NAME and p.token_type == tokenize.NAME: type_name.append('') type_name[-1] += p.name @@ -559,7 +555,7 @@ def to_parameters(self, tokens): result = [] type_modifiers = [] - pointer = reference = array = False + pointer = reference = False first_token = None default = [] @@ -576,7 +572,7 @@ def add_parameter(): parameter_type = Type(first_token.start, first_token.end, type_name, templated_types, modifiers, - reference, pointer, array) + reference, pointer, False) p = Parameter(first_token.start, end, name, parameter_type, default) result.append(p) @@ -599,7 +595,7 @@ def add_parameter(): if s.name == ',': add_parameter() type_modifiers = [] - pointer = reference = array = False + pointer = reference = False first_token = None default = [] elif default: @@ -609,7 +605,7 @@ def add_parameter(): elif s.name == '&': reference = True elif s.name == '[': - array = True + pointer = True elif s.name == ']': pass # Just don't add to type_modifiers. elif s.name == '=': diff --git a/test/expected.txt b/test/expected.txt index 9bf3391..580c7a3 100644 --- a/test/expected.txt +++ b/test/expected.txt @@ -18,7 +18,7 @@ test/foo.h:208: static data 'garbage_state' test/foo.h:225: static data 'flags_' test/foo.h:239: static data 'foo' test/foo.h:241: static data 'GlobalKey' -test/foo.h:268: static data 'instance_' +test/foo.h:268: static data 'Singleton::instance_' test/foo.h:274: static data 'string_list' test/include.h:1: 'empty.cc' does not need to be #included test/include.h:1: should not #include C++ source file 'empty.cc' diff --git a/test_ast.py b/test_ast.py index a69800f..eeadfc3 100755 --- a/test_ast.py +++ b/test_ast.py @@ -229,9 +229,9 @@ def test_array(self): self.assertEqual([], results[0].type.modifiers) self.assertEqual('int', results[0].type.name) self.assertEqual([], results[0].type.templated_types) - self.assertEqual(False, results[0].type.pointer) + self.assertEqual(True, results[0].type.pointer) self.assertEqual(False, results[0].type.reference) - self.assertEqual(True, results[0].type.array) + self.assertEqual(False, results[0].type.array) self.assertEqual('bar', results[0].name) def test_array_pointer_reference(self): @@ -243,9 +243,9 @@ def test_array_pointer_reference(self): self.assertEqual(['const'], results[0].type.modifiers) self.assertEqual('int', results[0].type.name) self.assertEqual([], results[0].type.templated_types) - self.assertEqual(False, results[0].type.pointer) + self.assertEqual(True, results[0].type.pointer) self.assertEqual(False, results[0].type.reference) - self.assertEqual(True, results[0].type.array) + self.assertEqual(False, results[0].type.array) self.assertEqual('bar', results[0].name) self.assertEqual(['mutable'], results[1].type.modifiers) @@ -272,9 +272,9 @@ def test_array_with_class(self): self.assertEqual([], results[0].type.modifiers) self.assertEqual('Bar', results[0].type.name) self.assertEqual([], results[0].type.templated_types) - self.assertEqual(False, results[0].type.pointer) + self.assertEqual(True, results[0].type.pointer) self.assertEqual(False, results[0].type.reference) - self.assertEqual(True, results[0].type.array) + self.assertEqual(False, results[0].type.array) self.assertEqual('bar', results[0].name) def test_multiple_args(self):