Änderungen

Summary

  1. Type-checking refactor (WIP) (#673) (commit: 55ee726) (details)
Commit 55ee7268481cb2cd74c50095c42178641a875c3b by noreply
Type-checking refactor (WIP) (#673)

Rewrote large parts of the type-checker that handles Generics. The new implementation has fewer hacks, so should be easier to maintain and combine with other features.

* test for generic function overload #628
* test for #655
* test for #657
* test for #668
* fixed hover/go to definition bug mentioned in #668
(commit: 55ee726)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeVoid.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeVararg.java (diff)
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/GenericsTests.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/intermediatelang/optimizer/SimpleRewrites.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/AttrExprExpectedType.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/imtranslation/ClassTranslator.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/validation/WurstValidator.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeClassOrInterface.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeReal.java (diff)
The file was modifiedde.peeeq.wurstscript/testscripts/concept/generics.wurst (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/CofigActualDef.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeBool.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/jassinterpreter/providers/PlayerProvider.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/ModelManagerImpl.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/AttrFuncDef.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/names/TypeLink.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeClass.java (diff)
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/StdLib.java (diff)
The file was addedde.peeeq.wurstscript/src/main/java/de/peeeq/datastructures/Deferred.java
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/AttrFunctionSignature.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/names/NameLinks.java (diff)
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/ModuleTests.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/SubClasses.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/UtilsIO.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeUnion.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/UsedPackages.java (diff)
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/ClassesTests.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/AttrPossibleFunctionSignatures.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/imtranslation/ExprTranslation.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstNativeType.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/AttrClosureCapturedVariables.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeArray.java (diff)
The file was modifiedde.peeeq.wurstscript/parserspec/wurstscript.parseq (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeTuple.java (diff)
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/ArrayTests.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/AttrNameDef.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypePackage.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeUnknown.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/AttrExprType.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeIntLiteral.java (diff)
The file was modifiedde.peeeq.wurstscript/build.gradle (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/imtranslation/ImTranslator.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/OverriddenFunctions.java (diff)
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/GenerateBotData.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/imtranslation/TLDTranslation.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeEnum.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/MapRequest.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/GetCompletions.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/Level.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeInt.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeModule.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeNull.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/validation/controlflow/DataflowAnomalyAnalysis.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/InterfaceInstances.java (diff)
The file was addedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/names/TypeDefLink.java
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/FunctionSignature.java (diff)
The file was modifiedde.peeeq.wurstscript/testscripts/concept/tupleBug.wurst (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeInfer.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/AttrConstantValue.java (diff)
The file was modifiedde.peeeq.wurstscript/testscripts/concept/ObjectRecycler.wurst (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/imtranslation/OverrideUtils.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeNamedScope.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeInterface.java (diff)
The file was modifiedde.peeeq.wurstscript/testscripts/realbugs/module.wurst (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/names/NameResolution.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/names/FuncLink.java (diff)
The file was removedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/Generics.java
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/CodeActionRequest.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeBoundTypeParam.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeModuleInstanciation.java (diff)
The file was addedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/GenericsHelper.java
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeClosure.java (diff)
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/PackageTests.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/names/Visibility.java (diff)
The file was addedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/TypeParamOrd.java
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/AttrReturnTyp.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/names/PackageLink.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/AttrVarDefType.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/BackupController.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/ReadVariables.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/names/DefLink.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/translation/imtranslation/InterfaceTranslator.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeTypeParam.java (diff)
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/WurstScriptTest.java (diff)
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/InterfaceTests.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstType.java (diff)
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/OptimizerTests.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/AttrImplicitParameter.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/HoverInfo.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeString.java (diff)
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/ExtensionMethodsTests.java (diff)
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/VarargTests.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/GetDefinition.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/names/NameLink.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/utils/Utils.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/names/VarLink.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/jassinterpreter/InterpreterException.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/mpq/Jmpq3BasedEditor.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/DescriptionHtml.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/EarlyReturn.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/PossibleFuncDefs.java (diff)
The file was removedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeDeferred.java
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/ClassesExtTests.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/CallSignature.java (diff)
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/BugTests.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeCode.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeHandle.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/UsedGlobalVariables.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/AttrForEachStatement.java (diff)
The file was modifiedde.peeeq.wurstscript/src/test/java/tests/wurstscript/tests/RealWorldExamples.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/CheckHelper.java (diff)
The file was addedde.peeeq.wurstscript/testscripts/concept/HashListSetBug.wurst
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/WurstTypeStaticTypeRef.java (diff)
The file was modifiedde.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/intermediatelang/interpreter/ILInterpreter.java (diff)