Skip to content

Commit cfb5212

Browse files
author
svorenova
committed
Resolving name shadowing
class_name parameter renamed to class_name_prefix
1 parent 97e1b9a commit cfb5212

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

src/java_bytecode/java_types.cpp

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,11 @@ exprt java_bytecode_promotion(const exprt &expr)
175175
/// "Ljava/util/List<T>;" or "Ljava/util/List<Integer>;"
176176
///
177177
/// \param src: the string representation as used in the class file
178-
/// \param class_name: name of class to append to generic type variables
178+
/// \param class_name_prefix: name of class to append to generic type variables
179179
/// \returns internal type representation for GOTO programs
180180
typet java_type_from_string(
181181
const std::string &src,
182-
const std::string &class_name)
182+
const std::string &class_name_prefix)
183183
{
184184
if(src.empty())
185185
return nil_typet();
@@ -210,7 +210,7 @@ typet java_type_from_string(
210210
// (TT;TU;I)V
211211
size_t closing_generic=find_closing_delimiter(src, 0, '<', '>');
212212
const typet &method_type=java_type_from_string(
213-
src.substr(closing_generic+1, std::string::npos), class_name);
213+
src.substr(closing_generic+1, std::string::npos), class_name_prefix);
214214

215215
// This invariant being violated means that tkiley has not understood
216216
// part of the signature spec.
@@ -233,7 +233,7 @@ typet java_type_from_string(
233233
result.return_type()=
234234
java_type_from_string(
235235
std::string(src, e_pos+1, std::string::npos),
236-
class_name);
236+
class_name_prefix);
237237

238238
for(std::size_t i=1; i<src.size() && src[i]!=')'; i++)
239239
{
@@ -271,7 +271,7 @@ typet java_type_from_string(
271271
}
272272

273273
std::string sub_str=src.substr(start, i-start+1);
274-
param.type()=java_type_from_string(sub_str, class_name);
274+
param.type()=java_type_from_string(sub_str, class_name_prefix);
275275

276276
if(param.type().id()==ID_symbol)
277277
param.type()=java_reference_type(param.type());
@@ -290,7 +290,8 @@ typet java_type_from_string(
290290
return nil_typet();
291291
char subtype_letter=src[1];
292292
const typet subtype=
293-
java_type_from_string(src.substr(1, std::string::npos), class_name);
293+
java_type_from_string(src.substr(1, std::string::npos),
294+
class_name_prefix);
294295
if(subtype_letter=='L' || // [L denotes a reference array of some sort.
295296
subtype_letter=='[' || // Array-of-arrays
296297
subtype_letter=='T') // Array of generic types
@@ -313,8 +314,8 @@ typet java_type_from_string(
313314
{
314315
// parse name of type variable
315316
INVARIANT(src[src.size()-1]==';', "Generic type name must end on ';'.");
316-
PRECONDITION(!class_name.empty());
317-
irep_idt type_var_name(class_name+"::"+src.substr(1, src.size()-2));
317+
PRECONDITION(!class_name_prefix.empty());
318+
irep_idt type_var_name(class_name_prefix+"::"+src.substr(1, src.size()-2));
318319
return java_generic_parametert(
319320
type_var_name,
320321
java_type_from_string("Ljava/lang/Object;").subtype());
@@ -324,7 +325,6 @@ typet java_type_from_string(
324325
// ends on ;
325326
if(src[src.size()-1]!=';')
326327
return nil_typet();
327-
std::string class_name=src.substr(1, src.size()-2);
328328

329329
std::size_t f_pos=src.find('<', 1);
330330
// get generic type information
@@ -367,7 +367,8 @@ typet java_type_from_string(
367367
"Type not terminated with \';\'");
368368
const size_t end=curr_end-curr_start+1;
369369
const typet &t=
370-
java_type_from_string(src.substr(curr_start, end), class_name);
370+
java_type_from_string(src.substr(curr_start, end),
371+
class_name_prefix);
371372
#ifdef DEBUG
372373
std::cout << "INFO: getting type "
373374
<< src.substr(curr_start, end) << "\n"
@@ -412,6 +413,7 @@ typet java_type_from_string(
412413

413414
return result;
414415
}
416+
std::string class_name=src.substr(1, src.size()-2);
415417
for(auto &letter : class_name)
416418
if(letter=='/')
417419
letter='.';
@@ -427,7 +429,7 @@ typet java_type_from_string(
427429
case '-':
428430
{
429431
#ifdef DEBUG
430-
std::cout << class_name << std::endl;
432+
std::cout << class_name_prefix << std::endl;
431433
#endif
432434
throw unsupported_java_class_siganture_exceptiont("wild card generic");
433435
}

src/java_bytecode/java_types.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ bool is_reference_type(char t);
7272
typet java_type_from_char(char t);
7373
typet java_type_from_string(
7474
const std::string &,
75-
const std::string &class_name="");
75+
const std::string &class_name_prefix="");
7676
char java_char_from_type(const typet &type);
7777
std::vector<typet> java_generic_type_from_string(
7878
const std::string &,

0 commit comments

Comments
 (0)