@@ -67,6 +67,7 @@ enum DuplicateCheckingMode {
67
67
ForbidDuplicateTypesAndModules ,
68
68
ForbidDuplicateValues ,
69
69
ForbidDuplicateTypesAndValues ,
70
+ ForbidDuplicateTypesModulesValues ,
70
71
OverwriteDuplicates
71
72
}
72
73
@@ -202,6 +203,18 @@ impl<'a, 'b:'a, 'tcx:'b> GraphBuilder<'a, 'b, 'tcx> {
202
203
}
203
204
n
204
205
}
206
+ ForbidDuplicateTypesModulesValues => {
207
+ let mut n = None ;
208
+ if child. defined_in_namespace ( TypeNS ) {
209
+ duplicate_type = TypeError ;
210
+ n = Some ( TypeNS ) ;
211
+ }
212
+ if child. defined_in_namespace ( ValueNS ) {
213
+ duplicate_type = ValueError ;
214
+ n = Some ( ValueNS ) ;
215
+ }
216
+ n
217
+ }
205
218
OverwriteDuplicates => None
206
219
} ;
207
220
if duplicate_type != NoError {
@@ -480,7 +493,7 @@ impl<'a, 'b:'a, 'tcx:'b> GraphBuilder<'a, 'b, 'tcx> {
480
493
ItemStruct ( ref struct_def, _) => {
481
494
// Adding to both Type and Value namespaces or just Type?
482
495
let ( forbid, ctor_id) = match struct_def. ctor_id {
483
- Some ( ctor_id) => ( ForbidDuplicateTypesAndValues , Some ( ctor_id) ) ,
496
+ Some ( ctor_id) => ( ForbidDuplicateTypesModulesValues , Some ( ctor_id) ) ,
484
497
None => ( ForbidDuplicateTypesAndModules , None )
485
498
} ;
486
499
0 commit comments