Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4c7e11d0ab28f1c52e6cc6420e004d2306962480
https://github.com/WebKit/WebKit/commit/4c7e11d0ab28f1c52e6cc6420e004d2306962480
Author: Tadeu Zagallo <[email protected]>
Date: 2023-08-28 (Mon, 28 Aug 2023)
Changed paths:
M Source/WebGPU/WGSL/AST/ASTStringDumper.cpp
M Source/WebGPU/WGSL/AST/ASTTypeName.h
M Source/WebGPU/WGSL/ConstantRewriter.cpp
M Source/WebGPU/WGSL/GlobalVariableRewriter.cpp
M Source/WebGPU/WGSL/Metal/MetalFunctionWriter.cpp
M Source/WebGPU/WGSL/Parser.cpp
M Source/WebGPU/WGSL/TypeCheck.cpp
M Source/WebGPU/WGSL/TypeStore.cpp
M Source/WebGPU/WGSL/TypeStore.h
M Source/WebGPU/WGSL/Types.cpp
M Source/WebGPU/WGSL/Types.h
M Tools/TestWebKitAPI/Tests/WGSL/ParserTests.cpp
Log Message:
-----------
[WGSL] ParameterizedTypeName should not parse the base
https://bugs.webkit.org/show_bug.cgi?id=260611
rdar://114321019
Reviewed by Dan Glastonbury.
Currently, when parsing, we make assumptions about what are the valid bases for
a ParameterizedTypeName, but that is not correct, as it can be affected by
aliases
and also adds unnecessary complexity by going back and forth between identifiers
and enum values. To simplify things, we keep the base of a ParameterizedTypeName
as an identifier and also move type constructors from TypeStore into the regular
typing context. This makes it so that manipulating ParameterizedTypeNames works
more like any other type.
* Source/WebGPU/WGSL/AST/ASTStringDumper.cpp:
(WGSL::AST::StringDumper::visit):
* Source/WebGPU/WGSL/AST/ASTTypeName.h:
(WGSL::AST::ParameterizedTypeName::base):
(WGSL::AST::ParameterizedTypeName::ParameterizedTypeName):
(WGSL::AST::ParameterizedTypeName::stringViewToKind): Deleted.
(WGSL::AST::ParameterizedTypeName::baseToString): Deleted.
(WGSL::AST::ParameterizedTypeName::base const): Deleted.
* Source/WebGPU/WGSL/ConstantRewriter.cpp:
(WGSL::ConstantRewriter::visit):
(WGSL::ConstantRewriter::materialize):
* Source/WebGPU/WGSL/GlobalVariableRewriter.cpp:
(WGSL::bindingMemberForGlobal):
* Source/WebGPU/WGSL/Metal/MetalFunctionWriter.cpp:
(WGSL::Metal::FunctionDefinitionWriter::visit):
* Source/WebGPU/WGSL/Parser.cpp:
(WGSL::Parser<Lexer>::parseTypeNameAfterIdentifier):
(WGSL::Parser<Lexer>::parsePrimaryExpression):
* Source/WebGPU/WGSL/TypeCheck.cpp:
(WGSL::TypeChecker::TypeChecker):
(WGSL::TypeChecker::visit):
(WGSL::TypeChecker::lookupType):
(WGSL::TypeChecker::vectorFieldAccess):
(WGSL::TypeChecker::allocateSimpleConstructor):
* Source/WebGPU/WGSL/TypeStore.cpp:
(WGSL::TypeStore::TypeStore):
(WGSL::TypeStore::typeConstructorType):
(WGSL::TypeStore::constructType): Deleted.
(WGSL::TypeStore::allocateConstructor): Deleted.
* Source/WebGPU/WGSL/TypeStore.h:
* Source/WebGPU/WGSL/Types.cpp:
(WGSL::Type::dump const):
(WGSL::Type::size const):
(WGSL::Type::alignment const):
* Source/WebGPU/WGSL/Types.h:
Canonical link: https://commits.webkit.org/267348@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes