Esempio n. 1
0
        // e.g. literalExpressionOwner = "InvokeRepeating"
        // targetType = "MyMonoBehaviour"
        public UnityEventFunctionReference(ITypeElement targetType, ILiteralExpression literal, MethodSignature methodSignature)
            : base(literal)
        {
            myTargetType    = targetType;
            MethodSignature = methodSignature;

            // All Unity event functions are instance methods, but handle the method signature
            if (methodSignature.IsStatic == null)
            {
                myAccessContext = new DefaultAccessContext(myOwner);
            }
            else if (methodSignature.IsStatic == true)
            {
                myAccessContext = new StaticAccessContext(myOwner);
            }
            else
            {
                myAccessContext = new NonStaticAccessContext(myOwner);
            }

            myMethodFilter             = new InvokableMethodFilter();
            myStaticFilter             = new StaticFilter(myAccessContext);
            myMethodSignatureFilter    = new MethodSignatureFilter(UnityResolveErrorType.UNITY_STRING_LITERAL_REFERENCE_INCORRECT_SIGNATURE_WARNING, MethodSignature);
            myUserCodeCompletionFilter = new UserCodeCompletionFilter();
        }
Esempio n. 2
0
 /// <summary>
 /// Instantiate an object with the desired settings.
 /// </summary>
 /// <param name="ruleRunnerFactory">The factory to create a <see cref="IRuleRunner"/></param>
 /// <param name="filter">The symbol filter.</param>
 /// <param name="equalityComparer">The comparer to map metadata.</param>
 public ComparingSettings(RuleRunnerFactory ruleRunnerFactory = null, ISymbolFilter filter = null, IEqualityComparer <ISymbol> equalityComparer = null, bool includeInternalSymbols = false, bool strictMode = false, bool warnOnMissingReferences = false, string leftName = null, string[] rightNames = null)
 {
     Filter                  = filter ?? new SymbolAccessibilityBasedFilter(includeInternalSymbols: includeInternalSymbols);
     EqualityComparer        = equalityComparer ?? new DefaultSymbolsEqualityComparer();
     RuleRunnerFactory       = ruleRunnerFactory ?? new RuleRunnerFactory(leftName, rightNames, EqualityComparer, includeInternalSymbols, strictMode, warnOnMissingReferences);
     WarnOnMissingReferences = warnOnMissingReferences;
 }
        public UnityEventFunctionReference(ITypeElement typeElement, ILiteralExpression literal)
            : base(literal)
        {
            myTypeElement = typeElement;

            myMethodFilter = new DeclaredElementTypeFilter(ResolveErrorType.NOT_RESOLVED, CLRDeclaredElementType.METHOD);
        }
        public PropertyDataReference(ITypeElement typeElement, ILiteralExpression literal)
            : base(literal)
        {
            this.typeElement = typeElement;

            exactNameFilter = new ExactNameFilter((string)myOwner.ConstantValue.Value);
            propertyFilter  = new PredicateFilter(FilterToApplicableProperties);
        }
Esempio n. 5
0
        protected override ISymbolFilter[] GetCompletionFilters()
        {
            var filters    = base.GetCompletionFilters();
            var newFilters = new ISymbolFilter[filters.Length + 1];

            filters.CopyTo(newFilters, 0);
            newFilters[filters.Length] = new IgnoreRootPathFilter();
            return(newFilters);
        }
Esempio n. 6
0
        public MonoBehaviourInvokeReference(ITypeElement typeElement, ILiteralExpression literal)
            : base(literal)
        {
            myTypeElement = typeElement;

#if WAVE07
            myMethodFilter = new DeclaredElementTypeFilter(ResolveErrorType.NOT_RESOLVED, CLRDeclaredElementType.METHOD);
#else
            myMethodFilter = new DeclaredElementTypeFilter(ResolveErrorType.NOT_RESOLVED_IN_STRING_LITERAL, CLRDeclaredElementType.METHOD);
#endif
        }
        public SyncVarHookReference(ITypeElement owningType, IType fieldType, ILiteralExpression literal)
            : base(literal)
        {
            myOwningType     = owningType;
            myIsMethodFilter = new DeclaredElementTypeFilter(ResolveErrorType.NOT_RESOLVED, CLRDeclaredElementType.METHOD);

            MethodSignature         = GetMethodSignature(owningType, fieldType);
            myMethodSignatureFilter = new MethodSignatureFilter(
                UnityResolveErrorType.UNITY_STRING_LITERAL_REFERENCE_INCORRECT_SIGNATURE_ERROR,
                MethodSignature);
        }
Esempio n. 8
0
        public MemberDataReference(ITypeElement typeElement, ILiteralExpression literal,
                                   Func <ILiteralExpression, TreeTextRange> getTreeTextRange,
                                   Func <IClrDeclaredElement, ITypeConversionRule> getTypeConversionRule)
            : base(literal)
        {
            this.typeElement           = typeElement;
            this.getTreeTextRange      = getTreeTextRange;
            this.getTypeConversionRule = getTypeConversionRule;

            exactNameFilter = new ExactNameFilter((string)myOwner.ConstantValue.Value);
            propertyFilter  = new PredicateFilter(FilterToApplicableMembers);
        }
Esempio n. 9
0
 public FiltersArray(ISymbolFilter[] filters)
 {
     this.filters = filters;
 }
Esempio n. 10
0
 /// <summary>
 /// Instantiate an object with the desired settings.
 /// </summary>
 /// <param name="ruleRunnerFactory">The factory to create a <see cref="IRuleRunner"/></param>
 /// <param name="filter">The symbol filter.</param>
 /// <param name="equalityComparer">The comparer to map metadata.</param>
 public ComparingSettings(IRuleRunnerFactory ruleRunnerFactory = null, ISymbolFilter filter = null, IEqualityComparer <ISymbol> equalityComparer = null, bool strictMode = false)
 {
     RuleRunnerFactory = ruleRunnerFactory ?? new RuleRunnerFactory(strictMode);
     Filter            = filter ?? new SymbolAccessibilityBasedFilter(includeInternalSymbols: false);
     EqualityComparer  = equalityComparer ?? new DefaultSymbolsEqualityComparer();
 }