~ubuntu-branches/ubuntu/lucid/monodevelop/lucid

« back to all changes in this revision

Viewing changes to src/core/MonoDevelop.Projects/MonoDevelop.Projects.Dom/ResolveResult.cs

  • Committer: Bazaar Package Importer
  • Author(s): Jo Shields
  • Date: 2010-01-10 14:25:59 UTC
  • mfrom: (1.2.5 upstream) (1.3.6 sid)
  • Revision ID: james.westby@ubuntu.com-20100110142559-sorji5exvk9tyknr
Tags: 2.2+dfsg-2
* debian/rules/remove_support_for_non_debian_functionality.patch:
  + Also fix monodevelop-core-addins.pc to remove links to the
    addins we remove in Debian

Show diffs side-by-side

added added

removed removed

Lines of Context:
245
245
                
246
246
                internal static void AddType (ProjectDom dom, List<object> result, IType type, IMember callingMember, bool showStatic)
247
247
                {
248
 
                //      System.Console.WriteLine("Add Type:" + type);
 
248
//                      System.Console.WriteLine("Add Type:" + type);
249
249
                        if (type == null)
250
250
                                return;
251
251
                        
270
270
                        }
271
271
                        
272
272
                        foreach (IType curType in dom.GetInheritanceTree (type)) {
 
273
                                
273
274
                                if (curType.ClassType == ClassType.Interface && type.ClassType != ClassType.Interface)
274
275
                                        continue;
275
276
                                foreach (IMember member in curType.Members) {
296
297
                        if (returnType == null || returnType.FullName == "System.Void")
297
298
                                return;
298
299
                        if (returnType.ArrayDimensions > 0) {
299
 
                                AddType (dom, result, dom.GetArrayType (returnType), callingMember, showStatic);
 
300
                                DomReturnType elementType = new DomReturnType (returnType.FullName);
 
301
                                elementType.ArrayDimensions = returnType.ArrayDimensions - 1;
 
302
                                for (int i = 0; i < elementType.ArrayDimensions; i++) {
 
303
                                        elementType.SetDimension (i, returnType.ArrayDimensions - 1);
 
304
                                }
 
305
                                elementType.PointerNestingLevel = returnType.PointerNestingLevel;
 
306
                                
 
307
                                AddType (dom, result, dom.GetArrayType (elementType), callingMember, showStatic);
300
308
                                return;
301
309
                        }
302
310
                        IType type = dom.GetType (returnType);
414
422
                        AddMethods (new IMethod [] { method });
415
423
                }
416
424
                
417
 
                public MethodResolveResult (List<IMember> members)
 
425
                public MethodResolveResult (IEnumerable members)
418
426
                {
419
427
                        AddMethods (members);
420
428
                }
445
453
                        
446
454
                        Debug.Assert (originalMethods.Count == methods.Count);
447
455
                        for (int i = 0; i < originalMethods.Count; i++) {
448
 
                                if (originalMethods[i].IsExtension) {
 
456
                                if (originalMethods[i] is ExtensionMethod) { // Extension methods are already resolved & instantiated.
 
457
                                        methods[i] = originalMethods[i];
 
458
                                } else if (originalMethods[i].IsExtension && Type != null) {
449
459
                                        methods[i] = new ExtensionMethod (Type, originalMethods[i], genericArguments, arguments);
450
460
                                } else {
451
461
                                        methods[i] = DomMethod.CreateInstantiatedGenericMethod (originalMethods[i], genericArguments, arguments);
467
477
                }
468
478
        }
469
479
        
 
480
        public class CombinedMethodResolveResult : MemberResolveResult
 
481
        {
 
482
                public MemberResolveResult BaseResolveResult {
 
483
                        get;
 
484
                        set;
 
485
                }
 
486
                
 
487
                public MethodResolveResult MethodResolveResult {
 
488
                        get;
 
489
                        set;
 
490
                }
 
491
                
 
492
                public CombinedMethodResolveResult (MemberResolveResult baseResolveResult, MethodResolveResult methodResolveResult)
 
493
                {
 
494
                        BaseResolveResult = baseResolveResult;
 
495
                        MethodResolveResult = methodResolveResult;
 
496
                        CallingType = baseResolveResult.CallingType;
 
497
                        CallingMember = baseResolveResult.CallingMember;
 
498
                        StaticResolve = baseResolveResult.StaticResolve;
 
499
                        ResolvedMember = baseResolveResult.ResolvedMember;
 
500
                        ResolvedExpression = baseResolveResult.ResolvedExpression;
 
501
                }
 
502
                
 
503
                public override IReturnType ResolvedType {
 
504
                        get {
 
505
                                return BaseResolveResult.ResolvedType;
 
506
                        }
 
507
                }
 
508
                public override IReturnType UnresolvedType {
 
509
                        get {
 
510
                                return BaseResolveResult.UnresolvedType;
 
511
                        }
 
512
                }
 
513
                
 
514
                public override IEnumerable<object> CreateResolveResult (ProjectDom dom, IMember callingMember)
 
515
                {
 
516
                        return BaseResolveResult.CreateResolveResult (dom, callingMember);
 
517
                }
 
518
        }
 
519
        
470
520
        public class ThisResolveResult : ResolveResult
471
521
        {
472
522
                public override IEnumerable<object> CreateResolveResult (ProjectDom dom, IMember callingMember)