private void ComputeParameters() { if (_lazyParametersAndDiagnostics != null) { return; } var diagnostics = DiagnosticBag.GetInstance(); SyntaxToken arglistToken; foreach (var param in _syntax.ParameterList.Parameters) { ReportAnyAttributes(diagnostics, param.AttributeLists); } var parameters = ParameterHelpers.MakeParameters( _binder, this, _syntax.ParameterList, arglistToken: out arglistToken, diagnostics: diagnostics, allowRefOrOut: true, allowThis: true, beStrict: true); var isVararg = (arglistToken.Kind() == SyntaxKind.ArgListKeyword); if (IsAsync && diagnostics.IsEmptyWithoutResolution) { SourceMemberMethodSymbol.ReportAsyncParameterErrors(parameters, diagnostics, this.Locations[0]); } var value = new ParametersAndDiagnostics(parameters, isVararg, diagnostics.ToReadOnlyAndFree()); Interlocked.CompareExchange(ref _lazyParametersAndDiagnostics, value, null); }
private void ComputeParameters() { if (_lazyParametersAndDiagnostics != null) { return; } var diagnostics = DiagnosticBag.GetInstance(); SyntaxToken arglistToken; var parameters = ParameterHelpers.MakeParameters(_binder, this, _syntax.ParameterList, true, out arglistToken, diagnostics, true); var isVararg = (arglistToken.Kind() == SyntaxKind.ArgListKeyword); if (IsAsync && diagnostics.IsEmptyWithoutResolution) { SourceMemberMethodSymbol.ReportAsyncParameterErrors(parameters, diagnostics, this.Locations[0]); } var value = new ParametersAndDiagnostics(parameters, isVararg, diagnostics.ToReadOnlyAndFree()); Interlocked.CompareExchange(ref _lazyParametersAndDiagnostics, value, null); }