Bug 230599

Summary: [Win][MSVC] REGRESSION(r282860): ClipboardItemBindingsDataSource.cpp(147): error C2955: 'WTF::Ref': use of class template requires template argument list
Product: WebKit Reporter: Fujii Hironori <Hironori.Fujii>
Component: WebCore Misc.Assignee: Fujii Hironori <Hironori.Fujii>
Status: RESOLVED FIXED    
Severity: Normal CC: webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Fujii Hironori 2021-09-22 00:22:09 PDT
[Win] REGRESSION(r282860): ClipboardItemBindingsDataSource.cpp(147): error C2955: 'WTF::Ref': use of class template requires template argument list

Windows Debug build (AppleWin and WinCairo ) is broken r282860 (Bug 230585)

https://build.webkit.org/#/builders/56/builds/4935

> Source\WebCore\Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp(147,13): error C2672: 'WTF::Vector<WTF::Ref<WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader,WTF::RawPtrTraits<T>>,0,WTF::CrashOnOverflow,16,WTF::VectorMalloc>::findMatching': no matching overloaded function found [C:\cygwin\home\buildbot\worker\win10-debug\build\WebKitBuild\Debug\Source\WebCore\WebCore.vcxproj]
> Source\WebCore\Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp(147,13): error C2672:         with [C:\cygwin\home\buildbot\worker\win10-debug\build\WebKitBuild\Debug\Source\WebCore\WebCore.vcxproj]
> Source\WebCore\Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp(147,13): error C2672:         [ [C:\cygwin\home\buildbot\worker\win10-debug\build\WebKitBuild\Debug\Source\WebCore\WebCore.vcxproj]
> Source\WebCore\Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp(147,13): error C2672:             T=WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader [C:\cygwin\home\buildbot\worker\win10-debug\build\WebKitBuild\Debug\Source\WebCore\WebCore.vcxproj]
> Source\WebCore\Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp(147,13): error C2672:         ] (compiling source file C:\cygwin\home\buildbot\worker\win10-debug\build\WebKitBuild\Debug\DerivedSources\WebCore\unified-sources\UnifiedSource-4babe430-1.cpp) [C:\cygwin\home\buildbot\worker\win10-debug\build\WebKitBuild\Debug\Source\WebCore\WebCore.vcxproj]

https://build.webkit.org/#/builders/38/builds/7385

> C:\BW\wincairo-wkl-debug\build\Source\WebCore\Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp(147): error C2955: 'WTF::Ref': use of class template requires template argument list
> C:\BW\wincairo-wkl-debug\build\WebKitBuild\Debug\WTF\Headers\wtf/Ref.h(49): note: see declaration of 'WTF::Ref'
> C:\MSVS\VC\Tools\MSVC\14.28.29910\include\type_traits(1493): note: see reference to function template instantiation 'auto WebCore::ClipboardItemBindingsDataSource::collectDataForWriting::<lambda_6589608709eb70dec6eaad19ea1ca6f9>::operator ()<const T>(const T &) const' being compiled
>         with
>         [
>             T=WTF::KeyValuePair<WTF::String,WTF::RefPtr<WebCore::DOMPromise,WTF::RawPtrTraits<WebCore::DOMPromise>,WTF::DefaultRefDerefTraits<WebCore::DOMPromise>>>
>         ]
> C:\MSVS\VC\Tools\MSVC\14.28.29910\include\type_traits(1721): note: see reference to alias template instantiation 'std::_Decltype_invoke_nonzero<WebCore::ClipboardItemBindingsDataSource::collectDataForWriting::<lambda_6589608709eb70dec6eaad19ea1ca6f9>,const WTF::KeyValuePair<WTF::String,WTF::RefPtr<WebCore::DOMPromise,WTF::RawPtrTraits<T>,WTF::DefaultRefDerefTraits<T>>>&,>' being compiled
>         with
>         [
>             T=WebCore::DOMPromise
>         ]
> C:\BW\wincairo-wkl-debug\build\Source\WebCore\Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp(185): note: see reference to class template instantiation 'std::result_of<MapFunction (const T &)>' being compiled
>         with
>         [
>             MapFunction=WebCore::ClipboardItemBindingsDataSource::collectDataForWriting::<lambda_6589608709eb70dec6eaad19ea1ca6f9>,
>             T=WTF::KeyValuePair<WTF::String,WTF::RefPtr<WebCore::DOMPromise,WTF::RawPtrTraits<WebCore::DOMPromise>,WTF::DefaultRefDerefTraits<WebCore::DOMPromise>>>
>         ]
> C:\BW\wincairo-wkl-debug\build\Source\WebCore\Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp(147): error C2440: '<function-style-cast>': cannot convert from 'initializer list' to 'WebCore::ClipboardItemBindingsDataSource::collectDataForWriting::<lambda_6589608709eb70dec6eaad19ea1ca6f9>::()::<lambda_7511e5bf98e47feee3350c36caa69610>::()::<lambda_f14ac325040a069e5ee0b583856388b6>'
> C:\BW\wincairo-wkl-debug\build\Source\WebCore\Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp(147): note: No constructor could take the source type, or constructor overload resolution was ambiguous
> C:\BW\wincairo-wkl-debug\build\Source\WebCore\Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp(147): error C2672: 'WTF::Vector<WTF::Ref<WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader,WTF::RawPtrTraits<T>>,0,WTF::CrashOnOverflow,16,WTF::VectorMalloc>::findMatching': no matching overloaded function found
>         with
>         [
>             T=WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader
>         ]
> C:\BW\wincairo-wkl-debug\build\Source\WebCore\Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp(133): error C2672: 'WTF::Vector<WTF::KeyValuePair<WTF::String,WTF::RefPtr<WebCore::DOMPromise,WTF::RawPtrTraits<T>,WTF::DefaultRefDerefTraits<T>>>,0,WTF::CrashOnOverflow,16,WTF::VectorMalloc>::map': no matching overloaded function found
>         with
>         [
>             T=WebCore::DOMPromise
>         ]
> C:\BW\wincairo-wkl-debug\build\Source\WebCore\Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp(133): error C2783: 'WTF::Vector<R,0,WTF::CrashOnOverflow,16,WTF::VectorMalloc> WTF::Vector<WTF::KeyValuePair<WTF::String,WTF::RefPtr<WebCore::DOMPromise,WTF::RawPtrTraits<T>,WTF::DefaultRefDerefTraits<T>>>,0,WTF::CrashOnOverflow,16,WTF::VectorMalloc>::map(MapFunction) const': could not deduce template argument for 'R'
>         with
>         [
>             T=WebCore::DOMPromise
>         ]
> C:\BW\wincairo-wkl-debug\build\WebKitBuild\Debug\WTF\Headers\wtf/Vector.h(841): note: see declaration of 'WTF::Vector<WTF::KeyValuePair<WTF::String,WTF::RefPtr<WebCore::DOMPromise,WTF::RawPtrTraits<T>,WTF::DefaultRefDerefTraits<T>>>,0,WTF::CrashOnOverflow,16,WTF::VectorMalloc>::map'
>         with
>         [
>             T=WebCore::DOMPromise
>         ]
Comment 1 Fujii Hironori 2021-09-22 00:51:49 PDT
Created attachment 438929 [details]
Patch
Comment 2 EWS 2021-09-22 01:24:50 PDT
Committed r282867 (241998@main): <https://commits.webkit.org/241998@main>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438929 [details].
Comment 3 Radar WebKit Bug Importer 2021-09-22 01:25:25 PDT
<rdar://problem/83388178>
Comment 4 Fujii Hironori 2021-09-22 15:00:12 PDT
The /Zc:lambda switch can solve this prolem. This workaround will be removed after enabling /Zc:lambda switch for all Windows ports.
See also : Bug 226070 – [MSVC] The "/Zc:lambda" switch is recommended to use the new lambda processor.