File tree Expand file tree Collapse file tree 3 files changed +59
-0
lines changed
Expand file tree Collapse file tree 3 files changed +59
-0
lines changed Original file line number Diff line number Diff line change @@ -104,9 +104,11 @@ class PlyLexer:
104104 "final" ,
105105 "float" ,
106106 "for" ,
107+ "__forceinline" ,
107108 "friend" ,
108109 "goto" ,
109110 "if" ,
111+ "__inline" ,
110112 "inline" ,
111113 "int" ,
112114 "long" ,
Original file line number Diff line number Diff line change @@ -2371,6 +2371,8 @@ def _parse_type(
23712371 volatile = True
23722372 elif tok_type in _attribute_start :
23732373 self ._consume_attribute (tok )
2374+ elif tok_type in ("__inline" , "__forceinline" ):
2375+ both ["inline" ] = tok
23742376 else :
23752377 break
23762378
Original file line number Diff line number Diff line change @@ -1258,3 +1258,58 @@ def test_method_trailing_return_with_body() -> None:
12581258 ]
12591259 )
12601260 )
1261+
1262+
1263+ def test_msvc_inline () -> None :
1264+ content = """
1265+ __inline double fn1() {}
1266+ __forceinline double fn2() {}
1267+ static __inline double fn3() {}
1268+ static __forceinline double fn4() {}
1269+ """
1270+ data = parse_string (content , cleandoc = True )
1271+
1272+ assert data == ParsedData (
1273+ namespace = NamespaceScope (
1274+ functions = [
1275+ Function (
1276+ return_type = Type (
1277+ typename = PQName (segments = [FundamentalSpecifier (name = "double" )])
1278+ ),
1279+ name = PQName (segments = [NameSpecifier (name = "fn1" )]),
1280+ parameters = [],
1281+ inline = True ,
1282+ has_body = True ,
1283+ ),
1284+ Function (
1285+ return_type = Type (
1286+ typename = PQName (segments = [FundamentalSpecifier (name = "double" )])
1287+ ),
1288+ name = PQName (segments = [NameSpecifier (name = "fn2" )]),
1289+ parameters = [],
1290+ inline = True ,
1291+ has_body = True ,
1292+ ),
1293+ Function (
1294+ return_type = Type (
1295+ typename = PQName (segments = [FundamentalSpecifier (name = "double" )])
1296+ ),
1297+ name = PQName (segments = [NameSpecifier (name = "fn3" )]),
1298+ parameters = [],
1299+ static = True ,
1300+ inline = True ,
1301+ has_body = True ,
1302+ ),
1303+ Function (
1304+ return_type = Type (
1305+ typename = PQName (segments = [FundamentalSpecifier (name = "double" )])
1306+ ),
1307+ name = PQName (segments = [NameSpecifier (name = "fn4" )]),
1308+ parameters = [],
1309+ static = True ,
1310+ inline = True ,
1311+ has_body = True ,
1312+ ),
1313+ ]
1314+ )
1315+ )
You can’t perform that action at this time.
0 commit comments