diff options
author | Mark Spruiell <mes@zeroc.com> | 2003-10-24 04:25:01 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2003-10-24 04:25:01 +0000 |
commit | fc55024335a4d4510881316c21a9760c22a7bcea (patch) | |
tree | 7f75446796e5053205c563522f1b638c888dfa91 /cpp/src/Transform/Data.cpp | |
parent | minor fix (diff) | |
download | ice-fc55024335a4d4510881316c21a9760c22a7bcea.tar.bz2 ice-fc55024335a4d4510881316c21a9760c22a7bcea.tar.xz ice-fc55024335a4d4510881316c21a9760c22a7bcea.zip |
bug fix
Diffstat (limited to 'cpp/src/Transform/Data.cpp')
-rw-r--r-- | cpp/src/Transform/Data.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/cpp/src/Transform/Data.cpp b/cpp/src/Transform/Data.cpp index 4950909ba3c..db4c9a73b91 100644 --- a/cpp/src/Transform/Data.cpp +++ b/cpp/src/Transform/Data.cpp @@ -753,9 +753,20 @@ Transform::Data::checkClasses(const Slice::ClassDeclPtr& dest, const Slice::Clas { return checkClasses(dest, s, interceptor); } - else if(dest->unit().get() == src->unit().get()) + + if(dest->unit().get() != src->unit().get()) + { + Slice::TypeList l = dest->unit()->lookupTypeNoBuiltin(s2, false); + if(l.empty()) + { + _errorReporter->error("class " + s2 + " not found in new Slice definitions"); + } + s = Slice::ClassDeclPtr::dynamicCast(l.front()); + } + + if(s) { - Slice::ClassDefPtr def = src->definition(); + Slice::ClassDefPtr def = s->definition(); if(!def) { _errorReporter->error("class " + s2 + " declared but not defined"); |