diff --git a/wst/trunk/tests/test_suite/test_generators.pas b/wst/trunk/tests/test_suite/test_generators.pas index fd2325385..421d06bc8 100644 --- a/wst/trunk/tests/test_suite/test_generators.pas +++ b/wst/trunk/tests/test_suite/test_generators.pas @@ -20,7 +20,7 @@ uses {$ELSE} TestFrameWork, xmldom, wst_delphi_xml, {$ENDIF} - pastree, pascal_parser_intf, xsd_generator, wsdl_generator; + pastree, PScanner, pascal_parser_intf, xsd_generator, wsdl_generator; type @@ -1383,8 +1383,12 @@ var prmDef : TPasArgument; prmTypeDef : TPasType; begin - p := TPasFunction(tr.CreateElement(TPasFunction,'EchoWideString',cltyp,visDefault,'',0)); + p := TPasFunction(tr.CreateElement(TPasFunction,'EchoWideString',cltyp,visDefault,'',0)); + {$IFDEF WST_TPASSOURCEPOS} + pt := tr.CreateFunctionType('','result',p,False,Default(TPasSourcePos)); + {$ELSE WST_TPASSOURCEPOS} pt := tr.CreateFunctionType('','result',p,False,'',0); + {$ENDIF WST_TPASSOURCEPOS} pt.ResultEl.ResultType := tr.FindElementNS('WideString',s_xs) as TPasType; pt.ResultEl.ResultType.AddRef(); p.ProcType := pt; diff --git a/wst/trunk/tests/test_suite/testmetadata_unit.pas b/wst/trunk/tests/test_suite/testmetadata_unit.pas index d839ff774..61de48574 100644 --- a/wst/trunk/tests/test_suite/testmetadata_unit.pas +++ b/wst/trunk/tests/test_suite/testmetadata_unit.pas @@ -24,7 +24,7 @@ uses TestFrameWork, xmldom, wst_delphi_xml, {$ENDIF} test_suite_utils, metadata_generator, binary_streamer, metadata_repository, - pastree, pascal_parser_intf, metadata_wsdl; + pastree, PScanner, pascal_parser_intf, metadata_wsdl; type @@ -60,9 +60,13 @@ function TTestMetadata.CreateSymbolTable(): TwstPasTreeContainer; AClass : TPasClassType; AContainer : TwstPasTreeContainer ) : TPasFunction ; - begin + begin Result := TPasFunction(AContainer.CreateElement(TPasFunction,AName,AContainer.CurrentModule.InterfaceSection,visDefault,'',0)); + {$IFDEF WST_TPASSOURCEPOS} + Result.ProcType := AContainer.CreateFunctionType('','result',Result,True,Default(TPasSourcePos)); + {$ELSE WST_TPASSOURCEPOS} Result.ProcType := AContainer.CreateFunctionType('','result',Result,True,'',0); + {$ENDIF WST_TPASSOURCEPOS} AClass.Members.Add(Result); TPasFunctionType(Result.ProcType).ResultEl.ResultType := AContainer.FindElement(AResultTypeName) as TPasType; TPasFunctionType(Result.ProcType).ResultEl.ResultType.AddRef(); diff --git a/wst/trunk/ws_helper/wsdl_parser.pas b/wst/trunk/ws_helper/wsdl_parser.pas index 4ee387c53..311193da4 100644 --- a/wst/trunk/ws_helper/wsdl_parser.pas +++ b/wst/trunk/ws_helper/wsdl_parser.pas @@ -18,7 +18,7 @@ uses Classes, SysUtils, {$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF}, cursor_intf, rtti_filters, - pastree, pascal_parser_intf, logger_intf, xsd_parser; + pastree, PScanner, pascal_parser_intf, logger_intf, xsd_parser; const s_TRANSPORT = 'TRANSPORT'; @@ -852,7 +852,11 @@ function TWsdlParser.ParseOperation( locProcType := tmpMthd.ProcType; locFunc := TPasFunction(SymbolTable.CreateElement(TPasFunction,tmpMthd.Name,AOwner,visDefault,'',0)); SymbolTable.RegisterExternalAlias(locFunc,SymbolTable.GetExternalName(tmpMthd)); + {$IFDEF WST_TPASSOURCEPOS} + locFuncType := SymbolTable.CreateFunctionType('','Result',locFunc,False,Default(TPasSourcePos)); + {$ELSE WST_TPASSOURCEPOS} locFuncType := SymbolTable.CreateFunctionType('','Result',locFunc,False,'',0); + {$ENDIF WST_TPASSOURCEPOS} locFunc.ProcType := locFuncType; resArgIndex := FindIndexOfResultArg(locProcType.Args); for j := 0 to ( locProcType.Args.Count - 1 ) do begin diff --git a/wst/trunk/wst_global.inc b/wst/trunk/wst_global.inc index b914fb5c6..f59310339 100644 --- a/wst/trunk/wst_global.inc +++ b/wst/trunk/wst_global.inc @@ -55,6 +55,9 @@ {$DEFINE WST_TKFILE} {$DEFINE WST_TKCLASSREF} {$DEFINE WST_TKPOINTER} + {$IFEND} + {$IF Defined(FPC_FULLVERSION) and (FPC_FULLVERSION >= 30101) } + {$DEFINE WST_TPASSOURCEPOS} {$IFEND} {$ENDIF}