Exemple #1
0
        public void TypeOfThisUsages_SuperTypeIfAvailable()
        {
            SetupDefaultEnclosingMethod(
                InvokeStmt("this", Method(Fix.Void, DefaultClassContext, "M")));

            Context.TypeShape.TypeHierarchy = new TypeHierarchy
            {
                Element = DefaultClassContext,
                Extends = new TypeHierarchy
                {
                    Element = Type("TSuper")
                }
            };

            AssertQueriesWithoutSettingContexts(
                new Query
            {
                type       = Type("TSuper").ToCoReName(),
                classCtx   = Type("TSuper").ToCoReName(),
                methodCtx  = DefaultMethodContext.ToCoReName(),
                definition = DefinitionSites.CreateDefinitionByThis(),
                sites      =
                {
                    CallSites.CreateReceiverCallSite(
                        Method(Fix.Void, DefaultClassContext, "M"))
                }
            });
        }
        public void MethodContext_ElementDeclaration()
        {
            AddInvocationOnThisToDefaultContext();

            ResetMethodHierarchies(
                new MethodHierarchy
            {
                Element = DefaultMethodContext
            });

            var actual   = AssertSingleQuery().methodCtx;
            var expected = DefaultMethodContext.ToCoReName();

            Assert.AreEqual(expected, actual);
        }