Beispiel #1
0
        private TypeParameterConstraintClause GetTypeParameterConstraintClause(int ordinal)
        {
            if (_lazyTypeParameterConstraintsAndDiagnostics == null)
            {
                var diagnostics = DiagnosticBag.GetInstance();
                var constraints = MakeTypeParameterConstraints(diagnostics);
                var value       = new TypeParameterConstraintsAndDiagnostics(constraints, diagnostics.ToReadOnlyAndFree());
                Interlocked.CompareExchange(ref _lazyTypeParameterConstraintsAndDiagnostics, value, null);
            }

            var clauses = _lazyTypeParameterConstraintsAndDiagnostics.ConstraintClauses;

            return((clauses.Length > 0) ? clauses[ordinal] : null);
        }
Beispiel #2
0
        private TypeParameterConstraintClause GetTypeParameterConstraintClause(int ordinal)
        {
            if (_lazyTypeParameterConstraintsAndDiagnostics == null)
            {
                var diagnostics = DiagnosticBag.GetInstance();
                var constraints = MakeTypeParameterConstraints(diagnostics);
                var value = new TypeParameterConstraintsAndDiagnostics(constraints, diagnostics.ToReadOnlyAndFree());
                Interlocked.CompareExchange(ref _lazyTypeParameterConstraintsAndDiagnostics, value, null);
            }

            var clauses = _lazyTypeParameterConstraintsAndDiagnostics.ConstraintClauses;
            return (clauses.Length > 0) ? clauses[ordinal] : null;
        }