// 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(); }
/// <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); }
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); }
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); }
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); }
public FiltersArray(ISymbolFilter[] filters) { this.filters = filters; }
/// <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(); }