Delphi Prism 2011 Bug Fix List

By: Tim DelChiaro

Abstract: List of bugs fixed in Delphi Prism 2011

The following is a list of bug fixes in Delphi Prism 2011. QC numbers are included for bugs that were reported through QualityCentral. You can find additional information on fixes, features and enhancements in the Delphi Prism Change Log for version 4.0.23. 

QC #: Date Reported: Area:
67827 10/13/2008 Debugger
Description: Steps:
[QC Short Description]
There're no visualizers for standard types like IList, ICollection, IDictionary, ...

[QC Description]
There're no visualizers for standard types which makes inspecting those values quite painful.

if you come around implementing this, could you please put the "raw view" node before the items?
I really hate it in C#, that one has to scroll through all items to get to the container's properties.
QC Entry 67827

(RO5512)
1 - create a new console app
2 - Add this code:
//--------------------------------------------------
namespace ConsoleApplication2;

interface

uses
System.Linq;


type
ConsoleApp = class
public
class method Main;
end;

implementation
uses
System.Collections.Generic;
class method ConsoleApp.Main;
begin
// add your own code here
Console.WriteLine('Hello World.');

var d:=new Dictionary<String, Integer>();
d.Add("abc",1);
var a:=2; //Set a breakpoint here
end;
end.
//--------------------------------------------------
3 - Set a breakpoint at line : var a:=2
4 - Run the debugger
5 - hold your mouse over "d"

Original Steps (QC):
- create a new console app
- add this code:
var d := new Dictionary<String, Integer>();
d.Add("abc", 1);

- run the debugger and stop after adding the entry.
- hold your mouse over "d" and you will get tons of mostly irrelevant data, but no view showing key/value pairs like C# does.
QC #: Date Reported: Area:
68139 10/21/2008 IDE\Code Editor
Description: Steps:
[QC Short Description]
WPF - CC without recompilation not working

[QC Description]
The item "3663: WPF: Enable CC & Co on .g.pas files without recompile" from .531's changelog isn't working in one of my projects.
QC Entry 68139

(RO5516)
As requested in this thread ( https://forums.codegear.com/thread.jspa?threadID=5415&tstart=0 ) I gave my project to Brian (RemObjects). This is just to make sure it gets tracked ;-)
QC #: Date Reported: Area:
69378 11/27/2008 IDE\Code Editor
Description: Steps:
[QC Short Description]
"Implement Interface menbers" smarttag does not work for IQueryable

QC Entry 69378

(RO5545)
- Create a new Console application (make sure to select .net 3.5) - Add the following code in the interface section: TestClass = class(IQueryable<String>) private public end; - now click on the smarttag "Implement Interface Members" you will see that there is 4 times the method "GetEnumerator" also note the strange indentations in the generated code... the resulting code will not compile...
QC #: Date Reported: Area:
70235 1/3/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
IntelliSense vs. nested class in seperate file

[QC Description]
There seems to be a bug in IntelliSense, when a nested class is put into a seperate file.

(see Steps)
QC Entry 70235

(RO5602)
(1) Please create a new ConsoleApp. (2) Now, add a new file using the class template to it, call it "ConsoleApp.SomeType.pas". (3) Now there's a "ConsoleApp" class in it (missing feature? ;-)), delete that one, put the following class in the file instead: > SomeType nested in ConsoleApp = public class > public > property Foo : String; > end; (4) Switch back to "Program.pas" and try to add a field to the ConsoleApp class: > fFoos : List<ConsoleApp.SomeType>; When typing that, you'll see, that the IntelliSense after the dot (".") isn't showing "SomeType". (5) Add a constructor (not class constructor) to the ConsoleApp class. Try to type this in the implementation: > fFoos := new List<ConsoleApp.SomeType>; When hitting Ctrl+Space after the "new", there's no List<ConsoleApp.SomeType> preselected in CC (it's not in it at all). (6) Try to type: > fFoos.Count No "Count" after the dot in CC.
QC #: Date Reported: Area:
71848 2/28/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
Autocomplete can't resolve xaml object name when page is in tree folder

QC Entry 71848

(RO5703)
I made a second xaml page in a wpf app. I decided I didn't want that xaml and its xaml.pas cluttering up the root of the project folder. So I created a new folder in the tree and moved the files there. Now when I am in the editor or the xaml.pas file, the autocomplete won't resolve the named objects on the xaml page. (I think it gets that from a partial class definition in the g.pas file. I can blindly type the object names and their methods or properties and it will successfully compile and execute. But no autocompletion. So if I remove the 2 files from the project and then add them back in (while they still physically are in the folder on disk) as existing items, they show up in the tree back under the project node (not any folder) and then the autocompletion works again.
QC #: Date Reported: Area:
72918 4/11/2009 IDE\VS Integration
Description: Steps:
[QC Short Description]
F1 Does Not Find Local Content

[QC Description]
If you clickF1 when the cursor is on a method, String.Format, for example, and the the Visual Studio 2008 settings, Options -> Help -> Onine -> When loading Help content are set to "Try local first, then online"or "Try local ony, not online", The local help topic is not found.
QC Entry 72918

(RO5786)
1) Install MSDN Library for Visual Studio 2008 (or SP1) 2) Open Visual Studio 2008 3) Create a new Delphi Prism console application 4) In the Main method in the Program.pas file, enter "String.Format" 5) Place the cursor anywhere within "Format" Case 1: 1) From the main menu, select Tools -> Options to display the options dialog 2) Select Help -> Online -> Try local first, then online 3) Click the OK button 4) Press the F1 key and notice that online (not local) help is displayed Case 2: 1) From the main menu, select Tools -> Options to display the options dialog 2) Select Help -> Online -> Try local only, not online 3) Click the OK button 4) Press the F1 key and notice the following: a) The "Information Not Found" topic is display in Document Explorer b) The text "System.String.Format" is in the "Look for" text box on the Index tab c) Change the text to "String.Format", press [Enter] and notice that three topics are listed in the "Index Results window"
QC #: Date Reported: Area:
74912 6/15/2009 Compiler
Description: Steps:
[QC Short Description]
There should be an easy way to support the iterator keyword in Cirrus

[QC Description]
The iterator keyword

http://prismwiki.codegear.com/en/iterators

When the compiler encounters this keyword on a method it generates a hidden class. It looks like this in reflector

[CompilerGenerated]
private class @Iterator_GetRuleViolations0 : IEnumerator, IEnumerable, IEnumerator<RuleViolation>, IEnumerable<RuleViolation>, IDisposable
{
// Fields
private RuleViolation @Current;
private Employee @Self;
private int @State;

// Methods
public @Iterator_GetRuleViolations0(Employee Self);
public void Dispose();
public RuleViolation get_CurrentGeneric();
public IEnumerator GetEnumerator();
public IEnumerator<RuleViolation> GetEnumeratorGeneric();
public bool MoveNext();
public void Reset();

// Properties
public object System.Collections.IEnumerator.Current { get; }
}


If I want to build a method with iterator in Cirrus I have to build this class manually. It would be nice if Cirrus could do this for you via a property.
QC Entry 74912

(RO5898)
 
QC #: Date Reported: Area:
75349 6/28/2009 Compiler
Description: Steps:
[QC Short Description]
Cirrus: "implements" for fields

[QC Description]
It would be good to be able to add the "implements" keyword to fields using Cirrus.

For example this, only in Cirrus:

TestClass = public class
private
fFoo : MyClass;
public implements IMyClass;
end;
QC Entry 75349

(RO5924)
 
QC #: Date Reported: Area:
75463 7/2/2009 Compiler
Description: Steps:
[QC Short Description]
Optimize code for Not Boolean test

[QC Description]
When the compiler generates code for a expression such as
Not <Boolean value>
the code can be optimized.
QC Entry 75463

(RO5947)
Compile the following class definition: Type MyClass = Public Class Public Method DoSomething; End; Implementation Method MyClass.DoSomething; Begin Var s := 'abc'; If Not String.IsNullOrEmpty (s) Then s := 'def' End; Look at the generated code for the test in Reflector: L_0007: call bool [mscorlib]System.String::IsNullOrEmpty(string) L_000c: ldc.i4.s 0 L_000e: ceq the second instruction can be replaced with ldc.i4.0, which is one byte shorter. In addition, when removing the Not in the expression, the compiler uses the brfalse instruction. Why not use the brtrue instruction when a not is present?
QC #: Date Reported: Area:
75517 7/3/2009 IDE\VS Integration
Description: Steps:
[QC Short Description]
Events in WPF designer (VS2008)

[QC Description]
In the WPF designer of VS2008 the following functions are missing:

- Creating events in XAML code is not working.
- Events are not shown in the Properties box
QC Entry 75517

(RO5971)
- Create a new WPF application - Try to add an event handler for the window's "Loaded" event with the following methods: - Edit the XAML code: inside the "window" tag type 'Loaded="'. Now there should be the option to create a new method, but there isn't. In fact there's notihing. - Look at the "Property" box. Only properties are displayed, not the events. There should be an events tab when the SP1 for VS2008 is installed. I attached a screenshot showing the problems.
QC #: Date Reported: Area:
75989 7/21/2009 IDE\Project Management
Description: Steps:
[QC Short Description]
System.Core.dll missing from .NET 4.0 project

[QC Description]
When creating a .NET 4.0 WinForms project, the appropriate System.Core.dll (i.e. the one from version 4.0) is missing from the references.

This is needed for dynamics to work.

Not sure if other project types are affected, too.
QC Entry 75989

(RO6182)
 
QC #: Date Reported: Area:
76874 8/20/2009 Compiler
Description: Steps:
[QC Short Description]
extend Delphi Compatibility to support := also for global variables

[QC Description]
as discussed in the NG:
please support Code like this:

var
MyGlobaleVars: TMyClass = nil;
QC Entry 76874

(RO6190)
 
QC #: Date Reported: Area:
77049 8/26/2009 Compiler
Description: Steps:
[QC Short Description]
Recursive Lambda Expressions

QC Entry 77049

(RO6204)
1. Create a new console app. 2. Paste the following code: namespace MyApp; interface uses System.Diagnostics, System.Linq; type ConsoleApp = class public class method Main; end; implementation class method ConsoleApp.Main; begin var fib: Func<Integer, Integer> := n -> begin Debug.WriteLine(n); iif(n > 1, fib(n - 1) + fib(n - 2), n); end; Console.Write(fib(3)); Console.Read(); end; end. 3. Try to build it. You won't get any usable error message.
QC #: Date Reported: Area:
77235 9/1/2009 Compiler
Description: Steps:
[QC Short Description]
No debug infos for local variables in Mono

[QC Description]
It seems that the compiler don't generates debug information for local variables in a Mono application. (OpenSUSE 11.1, Mono 2.4.2.3(

Maybe this has something to do with the warning message

** (/home/rupert/Prism/Oxygene.exe:5219): WARNING **: The class Mono.CompilerServices.SymbolWriter.ISourceMethod could not be loaded, used in Mono.CompilerServices.SymbolWriter, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756


Additionally it seems that the compiler either don't generate debug infos for indexed properties or the mono debugger isn't capable of handle that.
QC Entry 77235

(RO6227)
This has nothing to do with Steps to reproduce, but the only area i can put comments in so far... While searching for the pre-release beta builds (which was promised to be available to beta testers) I've accidentally resettet my beta status to "invited" (which was very strange). If somebody would be so kind to re-invite me i would be glad.
QC #: Date Reported: Area:
77272 9/2/2009 Compiler
Description: Steps:
[QC Short Description]
Possibly incorrect detected unreachable code

[QC Description]
When compiling the Cirruscache sample,
codeflowanalysis detects unreachable code which seems to be wrong
QC Entry 77272

(RO6239)
method CachedFibonacciNumberCalculator.Calculate(aNumber: Int32): Int64; begin if (aNumber <= 1) then // <- unreachable code ? exit (0); if (aNumber = 2) then exit (1); exit (self.Calculate(aNumber-2) + self.Calculate(aNumber-1)); end;
QC #: Date Reported: Area:
77305 9/3/2009 IDE\Project Management
Description: Steps:
[QC Short Description]
Opening Project Causes "The given path's format is not supported" Error

[QC Description]
When attempting to open a project saved with a previous build, the following error occurs:

"The given path's format is not supported."

The Solution Explorer shows the project as unloaded. In a solution that had many projects, I was able to load most projects by selecting the Reload Project Solution Explorer context menu item. But there was one that I could not load at all. Upon inspecting the project file, I noticed that the macros, $(Project) , $(ProgramFiles) and $(Framework), have been replaced with relative paths.

Is this intended? I hope it is not intended because it would cause problems when multiple team members work on the same project who are on different Windows platforms (x86 vs x64) and third-party components are used that are installed in the Program Files or Program Files (x86) directories.
QC Entry 77305

(RO6238)
1) Open the attached solution that contains Delphi Prism projects created with a previous build. 2) The DataTipsTest.oxygene project was created with a previous build, but failed to load
QC #: Date Reported: Area:
77328 9/3/2009 Compiler
Description: Steps:
[QC Short Description]
Cirrus: ITypeReference.GetProperties not working correctly

[QC Description]
I have an aspect, which implements IFieldInterfaceDecorator. In the HandleInterface method I'm doing the following thing:

var fieldType := Services.FindType(aField.Type.Fullname);
var tmp := fieldType.GetProperties('foo');
for t in tmp do
Services.EmitHint(t.Name);

I'm using this aspect in the follwing code, but "foo" is not emitted as hint:

Multi = public class
private
[aspect:Inherits]
fBaseClassOne: BaseClassOne := new BaseClassOne(self);
end;

BaseClassOne = public class
public
constructor(parent : Multi); empty;
method DoSomething; empty;
property foo : String;
end;
QC Entry 77328

(RO6237)
 
QC #: Date Reported: Area:
77383 9/5/2009 IDE
Description: Steps:
[QC Short Description]
Silverlight pages are not UTF-8

[QC Description]
When creating a Silverlight application, the Page.xaml file is not saved as UTF-8 but as "Western European".

IMHO it would be good, to create all XAML files as UTF-8, so one can use a wider range of characters.
QC Entry 77383

(RO6233)
 
QC #: Date Reported: Area:
77426 9/6/2009 Compiler
Description: Steps:
[QC Short Description]
For Matching and generics

[QC Description]
The compiler doesn't accept For Matching in some constructions with generics.
QC Entry 77426

(RO6236)
Try to compile the following classes declaration: Type BaseClass = Public Class End; DerivedClass = Public Class (BaseClass) End; MyList<TData> = Public Class Where TData Is BaseClass; Private List : List <TData>; Public Method Test; End; Implementation Method MyList<TData>.Test; Begin For Matching Data : DerivedClass In List Do; // Error here End; error CE15: Type mismatch, cannot assign TData to DerivedClass Because I'm using the For Matching construction, the code should compile. In addition DerivedClass is a descendant of BaseClass, so the code is valid.
QC #: Date Reported: Area:
77469 9/7/2009 Compiler
Description: Steps:
[QC Short Description]
.665: Implicit convert to Boolean and iif

[QC Description]
When you use a class that has an implicit conversion to Boolean in an iif statement, it is not automatically converted.
QC Entry 77469

(RO6235)
Compile the following class definition: Type MyClass = Public Class Public Class Operator Implicit (Value : MyClass) : Boolean; Class Method Test; End; Implementation Class Operator MyClass.Implicit (Value : MyClass) : Boolean; Begin Exit True End; Class Method MyClass.Test; Begin Var a : MyClass; Var b := iif (a, 1, 2) End; error CE15: Type mismatch, cannot assign MyClass to Boolean
QC #: Date Reported: Area:
77564 9/9/2009 Compiler
Description: Steps:
[QC Short Description]
Cirrus: A call to an iterator method generates the wrong code

[QC Description]
The supplied solution is composed of several projects

ValidateTestConsoleApplication is - illustrates what I am attempting to build

ValidationAspects - are my cirrus aspects
Validation - is a library that defines a class used my other projects
ValidationTestUsingAspectsConsoleApplication is code that consumes the aspects

Inside program.pas from ValidateTestConsoleApplication is a class Employee with a method GetRuleViolations, its marked as an interator method

Employee=public class
method GetRuleViolations():IEnumerable<RuleViolation>; iterator;

end;

There is another method IsValid implemented as below

var result1 := GetRuleViolations.Count;
result := (result1 = 0);

I am attempting to implement this in Cirrus

QC Entry 77564

(RO6248)
1) Open the solution and build 2) In validation.pas from the ValidationAspects project there is the method HandleInterface There is this code var isValidMethod:=aType.AddMethod('IsValid',Services.FindType('System.Boolean'),false); var getRuleViolationCall:=new ProcValue(new SelfValue(),getRuleViolations); isValidMethod.SetBody(Services, method begin unquote(getRuleViolationCall); end); If you look at this in reflector it emits base.MoveNext(); If you comment out unquote(getRuleViolationCall) instead having unquote(getInstanceProc) as shown below var enumerableType:=Services.FindType('System.Linq.Enumerable'); var getInstanceProc:= new ProcValue(new TypeValue(enumerableType), 'Count', [Services.FindType('Validation.RuleViolation') as IType], [getRuleViolationCall]); isValidMethod.SetBody(Services, method begin unquote(getInstanceProc); //unquote(getRuleViolationCall); end); it results in 2 compile errors Error 1 (PE19) There is no overloaded method "Count" with these parameters C:\Program Files\MSBuild\RemObjects Software\Oxygene\RemObjects.Oxygene.targets 312 5 ValidateTestUsingAspectsConsoleApplication Error 3 (PE267) Exception during running aspect: Invalid value in assignment C:\develop\Validation\ValidateTestUsingAspectsConsoleApplication\Program.pas 11 11 ValidateTestUsingAspectsConsoleApplication I think maybe the 2 are related and that the first piece of code is perhaps calling the wrong method which is why the second failes ?
QC #: Date Reported: Area:
77568 9/9/2009 Compiler
Description: Steps:
[QC Short Description]
Process LogicalName in EmbeddedResource

[QC Description]
In C#, when inserting an embedded resource, there is a possibility to define its logical name, using the <LogicalName> element.
In Oxygene, this element is ignored.
QC Entry 77568

(RO6249)
In C#, you can define the following entry in the msbuild file: <EmbeddedResource Include="bar.resx"> <LogicalName>notfoo.bar.resources</LogicalName> </EmbeddedResource> And then the resource can be retrieve with the notfoo.bar.resources name. If I do the same in Oxygene, the resource still have the bar.resx name.
QC #: Date Reported: Area:
77927 9/22/2009 Compiler
Description: Steps:
[QC Short Description]
Generics in Nested Types

[QC Description]
Attached hopefully is a short chunk of code using generics with no other dependencies that won't compile. The three error messages don't help much -- all type mismatches like "cannot assign T to T". I cut out a bunch of code that wasn't needed. It appears that the T in one nested type is "different" from the T in the other nested type even though it is the T from the type both nested types are nested in.
QC Entry 77927

(RO6274)
Compile attached code. No dependencies.
QC #: Date Reported: Area:
77928 9/22/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
Override added to interface implementations

[QC Description]
If you are typing the code below and type a "q" after the "E" in the "method E" line, code completion kicks in and gives you the line

method Equals(x, y: T): System.Boolean; override;

But it isn't an override -- it is the implementation of an interface definition.

Upon more study, the override only appears when using generics -- if it is a "normal" interface and class, you don't get the override added.
QC Entry 77928

(RO6275)
Type the described code into the IDE...
QC #: Date Reported: Area:
77945 9/22/2009 IDE\VS Integration
Description: Steps:
[QC Short Description]
Namespace doesn't pick up folder names

[QC Description]
If you created a new class etc in a directory within your project, the namespace USED to be named something like MyProj.Dir. Now I've only seen MyProj. No Dir(s) added to the namespace name. That's with the option checked to use dir names. You get the namespace name in the project definition. How do you get the dir names appended? Without typing them in yourself, that is!
QC Entry 77945

(RO6273)
1) Create a new project. 2) Add a directory to the project 3) Create a class in the directory you just added 4) What is the namespace name? The project name?? (I love that you can't submit a QC report without steps)
QC #: Date Reported: Area:
77994 9/24/2009 Compiler
Description: Steps:
[QC Short Description]
When a procedure is used as a function, the error message is not clear

[QC Description]
When you try to use a procedure (method without a result) as a function (trying to use the non-existent result), the compiler says:
error CE15: (CE15) Type mismatch, cannot assign <unknown type> to unknown type

The following error message would be much more easy to understand:
The method xxx has no return value.
QC Entry 77994

(RO6280)
Try to compile the following class definition: Type MyClass = Public Class Public Method MyProc; Empty; Method Test; End; Implementation Method MyClass.Test; Begin Var a := MyProc; End;
QC #: Date Reported: Area:
78176 9/29/2009 Compiler
Description: Steps:
[QC Short Description]
Static arrays are not always initialized.

[QC Description]
The Wiki states: "All instances of MyArray1 and MyArray3 will be created automatically when they are used: "
That is not always the case...
QC Entry 78176

(RO6284)
create a Static array type: Type MyStaticArray = array[0..9] of Double; if you want to use that type in a method this will work: method SomeClass.SomeMethod; var someArray: MyStaticArray; begin someArray[3] := 0.124; end; but if you do this: method SomeClass.SomeMethod; begin var someArray: MyStaticArray; someArray[3] := 0.124; end; you will get a null pointer exception. the variable someArray is nil.
QC #: Date Reported: Area:
78177 9/29/2009 Compiler
Description: Steps:
[QC Short Description]
creation and definition of multi dimension arrays the same a normal arrays

[QC Description]
Using type inference you can create normal arrays like this:

var someArray := new Double[10];

this creates an array of doubles with a dimension of 10...


It would be nice if this works:

var someOtherArray := new Double[10,10];

this would create a two dimensional array of 10 x10...

QC Entry 78177

(RO6283)
 
QC #: Date Reported: Area:
78335 10/3/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
IntelliSense vs. array as local variable

QC Entry 78335

(RO6307)
- Create a new ConsoleApplication - In the Main method, paste the following code: var ints := Array of Integer([1,2,3,4,5,6,7]); - Compile it, to see that it's valid - Type var subInts := ints. - No members of "ints" are displayed, see this screenshot: http://dl.getdropbox.com/u/1435020/prism/091003_intellisense1.png
QC #: Date Reported: Area:
78336 10/3/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
IntelliSense vs. generic extension methods

QC Entry 78336

(RO6306)
- Create an new .NET 3.5 (<-- that's important) Console Application - add a new class field: class var fInts : List<Integer> := new List<Integer>; - now, in the Main method, type the following: fInts. - you should see something like this: http://dl.getdropbox.com/u/1435020/prism/091003_intellisense2.png The generic parameters of the LINQ extension methods are not displayed correctly (at least I think so, because the generic methods of List<T> are displayed in another way) - now, select one of the LINQ extension methods, e.g. the "Where" method and hit enter, so IntelliSense inserts the method. It results in something like this: http://dl.getdropbox.com/u/1435020/prism/091003_intellisense3.png
QC #: Date Reported: Area:
78353 10/4/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
Event handler is added after "end."

[QC Description]
When using IntelliSense to create an event handler, this method is added after "end."
QC Entry 78353

(RO6304)
- Create a new Console Application - Add an event to the class: class event Foo : EventHandler; - In the Main method, type the following: Foo += and let IntelliSense create the "ConsoleApp_Foo" method for you - The method will be added after the "end."
QC #: Date Reported: Area:
78471 10/8/2009 Compiler
Description: Steps:
[QC Short Description]
The compiler doesn't allow a type nested inside a generic class

[QC Description]
When we try to define a type nested in a generic class, the compiler doesn't accept it.
It could be useful to define nested type that must only be use in descendent classes.
QC Entry 78471

(RO6313)
Try to compile the following definitions: Type MyClass<TData> = Public Abstract Class Protected Method GetData (Mode : AccessMode); AbstractM End; AccessMode Nested In MyClass<TData> = Protected Enum (Reload, Update); error PE217: Type cannot be nested in a generic class
QC #: Date Reported: Area:
78608 10/13/2009 Compiler
Description: Steps:
[QC Short Description]
Cannot Load Saxon API Assembly

[QC Description]
When attempting to compile project that references the Saxon9Api.dll, Delphi Prism does not recoginize it as a valid assembly.

Compiling a similar project in C# is successful.

This may be a regression of QC 72816 which was fixed. The issue there was because Delphi Prism did not handle referenced assemblies that contained multiple modules.

It compiles successfully with the latest version, Saxon-HE 9.2.0.2. The difference as far as I can tell is that the latest version is compiled into a single module.
QC Entry 78608

(RO6321)
1) Download Saxon-B from http://prdownloads.sourceforge.net/saxon/saxonb9-1-0-6n.zip 2) Unzip 3) Create new project or open attached project and add reference to saxon9api.dll in the bin directory of the extracted folder. 4) Add Saxon.Api to the uses statement. 5) Note that Saxon or Saxon.Api does not appear in the Object Member List [Ctrl-Space]. 6) Compiling generates the following error: (CE29) Unable to load assembly C:\Users\Dan\Downloads\Development\!Extras!\Saxon\saxonb9-1-0-6n\bin\saxon9api.dll Not a valid .NET executable (Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index) C:\Program Files (x86)\MSBuild\RemObjects Software\Oxygene\RemObjects.Oxygene.targets 312 5 SaxonSandbox
QC #: Date Reported: Area:
78689 10/15/2009 Compiler
Description: Steps:
[QC Short Description]
Support for Partial Interfaces

[QC Description]
Would be nice to be able to create partial interfaces much like partial classes. This is supported in C#, so I was surprised to see no support in Prism.

For example, in a graphics engine, you might have an IGraphics Engine interface (to the whole engine) that has a lot of stuff in it so you might want to separte that out into multiple files, like IGraphics.Buffers, IGraphics.Commands, IGraphics.Resources, IGraphics.Textures, etc.
QC Entry 78689

(RO6320)
See description/suggestion
QC #: Date Reported: Area:
78776 10/19/2009 Compiler
Description: Steps:
[QC Short Description]
Runtime return type mismatch in expression

[QC Description]
Attached is a sample solution with the very same projects, one in C#, the other in Oxygene.

All three oxygene projects are set up exactly as the C# projects are. They should behave the very same. All projects in the solution compile.

When running the C# version, everything is as it should be.
When running the Oxygene version of the application, code from the the OxygeneDemoPersistence project is applied using dynamic coe generation.

When this happens, then the marked lines will result in an exception that System.DateTime cannot be used as a return value for System.Object (which works fine in the corresponding C# project).
QC Entry 78776

(RO6343)
Please modify the Configuration class in the OxygeneDemoApplication (and CSharpDemoApplication) project so that it will connect to an empty but existing SQL Server database. Then run both the CSharpApplication and OxygeneApplication. The latter will throw an exception stating that System.DateTime is not a valid type for return type System.Object.
QC #: Date Reported: Area:
78838 10/21/2009 IDE
Description: Steps:
[QC Short Description]
Remobject Hydra does not work

QC Entry 78838

(RO6353)
- Install the Trial version of Remobjects Hydra - Try to start a new Hydra Project for Delphi Prism --> this will generate an error : --------------------------- Microsoft Visual Studio --------------------------- Object reference not set to an instance of an object. --------------------------- OK ---------------------------
QC #: Date Reported: Area:
78871 10/22/2009 IDE\Project Management
Description: Steps:
[QC Short Description]
Resources are not added to project

QC Entry 78871

(RO6352)
- create a new winforms project. - add a picturebox component to the form. - add an image to the picturebox Image property using the properties window (take any image you have on disk) - compile and run --> the app runs but there is no picture in the picturebox.
QC #: Date Reported: Area:
78936 10/23/2009 IDE
Description: Steps:
[QC Short Description]
Code completion makes the monodevelop IDE hang

QC Entry 78936

(RO6351)
1) Run monodevelop on OSX 2) Open the supplied solution file called validation.sln 3) In the ValidateTestConsoleApplication open the file program.pas 4) Scroll down to the end of the file and place the cursor on line 103, which is after if(String.IsNullOrEmpty(self.Lastname))then begin yield new RuleViolation('Lastname is required', 'Lastname'); end; 5) Type self. and press ctrl space to invoke the code completion drop down 6) A dropdown with one item is displayed actual: one line is displayed in the dropdown Error: Object reference not set to an instance of an object expected: methods for the object should be displayed Note: The very next thing you do will cause the ide to become unresponse and you will have to kill it I have added the contents of doing a kill -QUIT pid as an attachment, the file is consoleoutput.txt
QC #: Date Reported: Area:
78938 10/23/2009 IDE
Description: Steps:
[QC Short Description]
New projects created in monodevelop on osx put files in the properties folder in the wrong location

[QC Description]
See steps

Note:

This applies to both class libaries and console projects
QC Entry 78938

(RO6350)
1) Open monodevelop on osx 2) Create a new console project Expected The properties folder in the project manager should contain files actual: The entire folder is marked as invalid and files cannot be opened. Note if you go the file system the files have been created in the project root folder with "properties\" in the filename For example -rw-r--r-- 1 JohnMoshakis staff 239 22 Oct 16:41 Properties\Resources.Designer.pas -rw-r--r-- 1 JohnMoshakis staff 5493 22 Oct 16:41 Properties\Resources.resx -rw-r--r-- 1 JohnMoshakis staff 239 22 Oct 16:41 Properties\Settings.Designer.pas -rw-r--r-- 1 JohnMoshakis staff 239 22 Oct 16:41 Properties\Settings.setting
QC #: Date Reported: Area:
78946 10/24/2009 Compiler
Description: Steps:
[QC Short Description]
Internal error with "Case assignment"

[QC Description]
When using the new syntax for Case assignment, an internal error is generated by the compiler.
QC Entry 78946

(RO6349)
1. Create a new Console Application 2. Replace the ConsoleApp.Main method with the following: class method ConsoleApp.Main; begin Var s : String; Var i : Integer; s := Case i Of 0 : 'Nothing found'; 1 : 'One item found'; Else 'More than one item found' End; end; 3. Compile Error 1 (CE7) Internal error (Exception while generating executable) C:\Program Files\MSBuild\RemObjects Software\Oxygene\RemObjects.Oxygene.targets 159 5 ConsoleApplication1
QC #: Date Reported: Area:
78949 10/24/2009 Compatibility
Description: Steps:
[QC Short Description]
($Project) not recognized in .oxygene files

[QC Description]
When compiling a .oxygene file with references using ($Project), an error is generated (reference not find).
Compiling the same project with .669 works correctly.
QC Entry 78949

(RO6348)
none
QC #: Date Reported: Area:
79019 10/27/2009 Compiler
Description: Steps:
[QC Short Description]
Lambda expressions make abbreviated delegate syntax fail

[QC Description]
Prism does not support use of += operator in lambda expressions. The compiler will either fail the build with _no_ error messages, or complain at the use of +=
QC Entry 79019

(RO6354)
Add this code into a console app's Program.pass file, and play around with the 4 tests at the bottom: type OnSomeEventDelegate = delegate(Sender: Object; Args: EventArgs); Test = class private fOnSomeEvent : OnSomeEventDelegate; public event OnSomeEvent: OnSomeEventDelegate delegate fOnSomeEvent; end; Tester = class method TheHandler(Sender: Object; Args: EventArgs); method TheHelper(param: Action<Test>); method DoIt; end; ..... method Tester.TheHandler(Sender: Object; Args: EventArgs); begin end; method Tester.TheHelper(param: Action<Test>); begin end; {$define TEST1} {.$define TEST2} {.$define TEST3} {.$define TEST4} method Tester.DoIt; begin //1) Direct delegate assignment. Build succeeds, no errors //This tells us that += is generally funcctional {$ifdef TEST1} var t: Test := new Test(); t.OnSomeEvent += TheHandler; {$endif} //2) Lambda onto delegate variable. Build fails, no errors {$ifdef TEST2} var assignment: Action<Test> := t -> begin t.OnSomeEvent += TheHandler end; {$endif} //3) Lambda onto delegate variable without begin/end. Build fails with errors {$ifdef TEST3} var assignment: Action<Test> := t -> t.OnSomeEvent += TheHandler; {$endif} //4 )Lambda into delegate directly. Build fails with errors {$ifdef TEST4} TheHelper(t -> t.OnSomeEvent += TheHandler); {$endif} end;
QC #: Date Reported: Area:
79131 10/30/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
Can't enumerate sets

[QC Description]
Existing Delphi 2006 allows you to enumerate the elements of a set using code similar to the following snippet.

var
MySet: set of Element; {But see bug 73450}
E: Element;

for E in MySet do
DoStuff(E);


Prism complains that MySet does not implement IEnumerable, which is true but unhelpful.

Note that a suggested workaround of defining an IEnumerator/IEnumerable won't work because I can't do the following because bug 73450 prevents me from declaring a variable with type "set of T":

SetEnumerator<T> = public class(IEnumerator<T>)
private
Elements: set of T;
etc...
QC Entry 79131

(RO6382)
type Element = class end; ElementSet = set of Element; var MySet: ElementSet; for E: Element in MySet do DoStuff(E);
QC #: Date Reported: Area:
79138 10/31/2009 IDE
Description: Steps:
[QC Short Description]
MD Project Template broken

[QC Description]
On MD/Mac OS X the new project template is broken.

The Files that should be in the folder Properties (Assemblyinfo, Resources.resx + designer file, Settings.settings + designer file) are not in an folder but NAMED "Properties\Filename".
QC Entry 79138

(RO6371)
Create a new console project.
QC #: Date Reported: Area:
79151 11/1/2009 Debugger
Description: Steps:
[QC Short Description]
Cannot inspect properties of an object

[QC Description]
If I drag an object of type JSonValue into the watch window and expand it the properties of the object are not displayed.

This also applies to the locals window
QC Entry 79151

(RO6369)
1) Open the supplied project and built it 2) Set a breakpoint on line 31 of program.pas, this is if(assigned(something))then which is inside ConsoleApp.Man 3) Run the application and the breakpoint should be hit 4) Attempt to inspect the variable something in the locals window, expand the object so that its properties are listed expected: The properties of the type jsonvalue should be listed with their values actual: the properties names are all blank and they have no value
QC #: Date Reported: Area:
79170 11/2/2009 IDE
Description: Steps:
[QC Short Description]
Create new folder fails (MD)

[QC Description]
When creating a new folder, an exception is rised. The folder is created, after all. But after this, the project wants to compile the Folder (treating it like it was a file).

The project is not compilable anymore.

QC Entry 79170

(RO6368)
With .682, create a new Project. Create a folder in it. An exception should rise and the project is not able to compile anymore. The exception is: System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.ArgumentNullException: Der Wert darf nicht NULL sein. bei System.Threading.Monitor.Enter(Object obj) bei c.T.A(String A, i a, T B) bei c.T.a(String A) bei c.T.d(String A) bei A.S.B(Object A, ProjectFileEventArgs a) bei MonoDevelop.Projects.ProjectFileEventHandler.Invoke(Object sender, ProjectFileEventArgs e) bei MonoDevelop.Projects.Project.OnFileAddedToProject(ProjectFileEventArgs e) bei MonoDevelop.Projects.Project.NotifyFileAddedToProject(ProjectFile file) bei MonoDevelop.Projects.Project.OnItemAdded(Object obj) bei MonoDevelop.Projects.DotNetProject.OnItemAdded(Object obj) bei MonoDevelop.Projects.ProjectItemCollection`1.NotifyAdded(Object item, Boolean comesFromParent) bei MonoDevelop.Projects.ProjectItemCollection`1.MonoDevelop.Projects.IItemListHandler.InternalAdd(Object obj, Boolean comesFromParent) bei MonoDevelop.Projects.ProjectItemCollection`1.NotifyAdded(Object item, Boolean comesFromParent) bei MonoDevelop.Projects.ProjectItemCollection`1.OnItemAdded(T item) bei MonoDevelop.Projects.ItemCollection`1.InsertItem(Int32 index, T item) bei System.Collections.ObjectModel.Collection`1.Add(T item) bei MonoDevelop.Ide.Gui.Pads.ProjectPad.FolderCommandHandler.AddNewFolder() --- Ende der internen Ausnahmestapelüberwachung --- bei System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) bei System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) bei System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) bei MonoDevelop.Components.Commands.DefaultCommandHandler.Run(Object target, Command cmd) bei MonoDevelop.Components.Commands.CustomCommandTargetAttribute.Run(Object target, Command cmd) bei MonoDevelop.Ide.Gui.Components.NodeCommandHandler.TransactedNodeHandlerAttribute.Run(Object target, Command cmd) bei MonoDevelop.Components.Commands.CustomCommandTargetAttribute.MonoDevelop.Components.Commands.ICommandTargetHandler.Run(Object target, Command cmd) bei MonoDevelop.Components.Commands.CommandHandlerInfo.Run(Object cmdTarget, Command cmd) bei MonoDevelop.Components.Commands.CommandManager.<>c__DisplayClass8.<DispatchCommand>b__1() bei MonoDevelop.Components.Commands.CommandManager.DispatchCommand(Object commandId, Object dataItem, Object initialTarget)
QC #: Date Reported: Area:
79201 11/3/2009 Compiler
Description: Steps:
[QC Short Description]
Compiler forgets to generate a .ret IL instruction

[QC Description]
In some cases, the compiler forgets to generate a .ret IL instruction.
QC Entry 79201

(RO6381)
Compile the following class definition: Type ErrorClass = Public Class Public Method DoSomething; End; Implementation Method ErrorClass.DoSomething; Begin Var i : Integer; Case i Of 0 : Exit; 1 : Raise New Exception ('Case 1'); Else Raise New Exception ('Case 2') End End; Then look at Reflector output: Chrome or C#: // This item is obfuscated and can not be translated. IL: .method public hidebysig instance void DoSomething() cil managed { .maxstack 2 .locals init ( [0] int32 i, [1] int32 <case variable>) L_0000: ldloc.0 L_0001: stloc.1 L_0002: ldloc.1 L_0003: ldc.i4.0 L_0004: beq.s L_000c L_0006: ldloc.1 L_0007: ldc.i4.1 L_0008: beq.s L_000f L_000a: br.s L_001c L_000c: ret L_000d: br.s L_0027 L_000f: ldstr "Case 1" L_0014: newobj instance void [mscorlib]System.Exception::.ctor(string) L_0019: throw L_001a: br.s L_0027 L_001c: ldstr "Case 2" L_0021: newobj instance void [mscorlib]System.Exception::.ctor(string) L_0026: throw } There is 2 jumps at instruction L_0027, that does not exist. So when running the program, it throws a System.InvalidProgramException.
QC #: Date Reported: Area:
79334 11/8/2009 IDE
Description: Steps:
[QC Short Description]
Opening a .pas file in monodevelop results in an exception dialog being raised

[QC Description]
You can't use monodevelop to open .pas file without a project open or if you have a project open you can't open a .pas file that isn't in the current project
QC Entry 79334

(RO35869)
1) Open monodevelop 2) Select file open from the menu 3) Select a .pas file actual: An exception dialog is displayed with the error "error while executing the command: open" System.NullReferenceException: Object reference not set to an instance of an object at MonoDevelop.Projects.SolutionItem.get_ExtendedProperties () [0x00000] in /Users/michael/Mono/monodevelop/main/src/core/MonoDevelop.Projects/MonoDevelop.Projects/SolutionItem.cs:156 at A.T.op_Implicit (MonoDevelop.Projects.DotNetProject A) [0x00000] at RemObjects.Oxygene.MonoDevelop.Project.OxygeneCodeCompletion.Initialize () [0x00000] at MonoDevelop.Ide.Gui.Content.TextEditorExtension.Initialize (MonoDevelop.Ide.Gui.Document document) [0x00007] in /Users/michael/Mono/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/TextEditorExtension.cs:49 at MonoDevelop.Ide.Gui.Document.OnDocumentAttached () [0x0008b] in /Users/michael/Mono/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs:482 at MonoDevelop.Ide.Gui.Workbench.WrapDocument (IWorkbenchWindow window) [0x0004f] in expected: The file should open in the editor
QC #: Date Reported: Area:
79336 11/8/2009 IDE\Dialogs
Description: Steps:
[QC Short Description]
When creating projects monodevelop solutions have some of the delphi compatibility options turned on

[QC Description]
Compiler compatibility options should be the same inside MonoDevelop and Visual Studio
QC Entry 79336

(RO35868)
1) Open monodevelop and create a new Oxygene console project 2) In the project manager select options from the right click menu 3) The project options dialog is displayed, select build compatibility Actual: The compiler compatibility options "allow globals, allow create constructor calls and allow implicit var/out in method calls" are turned on expected: On Windows inside Visual Studio these options are not turned on, this should also be the case for MonoDevelop
QC #: Date Reported: Area:
79357 11/9/2009 Compiler
Description: Steps:
[QC Short Description]
Improper forward class generetion in impelementatiin section

[QC Description]
If classes are define din implementation section then forward class decalration is not possible
QC Entry 79357

(RO6395)
Case A with implicit forward declatation =============================== implementation type T_ClassRoot = class public Test : Double ; end; T_ClassA = class private ref : T_ClassB ; #### UNKNOWN T_ClassB ###### end ; T_ClassB = class( T_ClassRoot ) end; Case B with explicit forward declaration: =============================== implementation type T_ClassB = class ; T_ClassRoot = class public Test : Double ; end; T_ClassA = class private ref : T_ClassB ; end ; T_ClassB = class( T_ClassRoot ) end; method MainForm.DoTest ; var z : T_ClassB ; begin z := new T_ClassB ; z.Test := 1; #### Test is not visible ###### end;
QC #: Date Reported: Area:
79383 11/10/2009 Compiler
Description: Steps:
[QC Short Description]
When using Embed As Resource in monodevelop the resulting assembly resource includes the folder name

[QC Description]
When the build action of an item is set to Embed as resource, there is a resource id property that can be set. The resource should be named using this id, unfortunately in addition to the ID the folder name is pre-pended in the assembly.

C# just uses the ID

QC Entry 79383

(RO6419)
1) Open the supplied projects and build. There is 1 project for C# called AddResourceConsoleProject and another for Oxygene called OxygeneAddResourceConsole. Both projects have a text file added to the project with the build action set to embed as resource 2) Open reflector and open the assemblies from each project expected: As can be seen in the C# assembly the ID of the resource is AddResourceConsoleProject.SomeText.txt In the Oxygene assembly the ID should be OxygeneAddResourceConsole.SomeText.txt actual: The ID of the resource in the assemby is .Users.JohnMoshakis.Documents.develop.Resources.OxygeneAddResourceConsole.OxygeneAddResourceConsole.SomeText.txt The folder name of the text file is included and it shouldn't be
QC #: Date Reported: Area:
79388 11/10/2009 IDE\Dialogs
Description: Steps:
[QC Short Description]
The tab preferences in the monodevelop editor cannot be changed

[QC Description]
The tab preference of 4 characters cannot be changed because even though the
QC Entry 79388

(RO6418)
1) Open monodevelop 2) Create a new console application 3) From the menu select monodevelop and selected preferences. 4) The options dialog should appear 5) Scroll down to the bottom and select Delphi Prism from the other section. Expand the Delphi Prism node and select tabs 6) Set tab and indent size to 16 7) Close the dialog and open a .pas file in the editor 8) Scroll to a line with code and hit return, so that a new line appears. 9) Move the cursor to the start of the line and hit tab expected: The cursor should move 16 characters over actual: The cursor moves 4 characters over. Its as if its always stuck at 4
QC #: Date Reported: Area:
79545 11/16/2009 Compiler
Description: Steps:
[QC Short Description]
anonymous methodes not working in Cirrus

[QC Description]
This will not work in Cirrus:

method InvokeRequiredAttribute.HandleImplementation(Services: RemObjects.Oxygene.Cirrus.IServices; aMethod: RemObjects.Oxygene.Cirrus.IMethodDefinition);
begin
aMethod.SetBody(Services, method begin
var m := method begin end;
end);
end;


This means it is impossible to make a call to for example Control.Invoke as it expects a delegate and you can't create a delegate in cirrus.
QC Entry 79545

(RO6440)
 
QC #: Date Reported: Area:
79552 11/16/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
CC is not working propertly in VS2008

QC Entry 79552

(RO6441)
- Create a new Console application. - Go to the Main method and make sure it is empty. - Type this : "Cons" --> now you have CC and you can select the Console class. - now continue "Console.Wr" --> No CC when trying to complete Console.WriteLine Also after "Console.WriteLine(" you will get no parameter CC (CTRL + SHIFT + SPACE)
QC #: Date Reported: Area:
79705 11/21/2009 Compiler
Description: Steps:
[QC Short Description]
AutoInjectIntoAttribute injects the same methods more than once

[QC Description]
Occurs during the creation of a Cirrus Aspect targeting methods. Will occur if the developer includes a method intended to be Auto injected with the [Aspect:AutoInjectIntoTarget] attribute.

If the developer then adds the Aspect to more than one method within the same target class, the compiler will produce an error. The Error states that the method that was AutoInjected is now an ambiguous reference, leading me to believe that it has attempted to inject the method more than once.
QC Entry 79705

(RO6453)
1. Create an Aspect with [AttributeUsage(AttributeTargets.Method)] 2. Create a method which is called from within the Method Aspects HandleImplementation. 3. Mark the called method with the [Aspect:AutoInjectIntoTarget] so that it will be injected into the target class. 4. Add the Aspect to more than one method within the same target class.
QC #: Date Reported: Area:
79736 11/23/2009 Other
Description: Steps:
[QC Short Description]
WCF Service Library sample errors

[QC Description]
When creating a WCF Service Library, the comments in the Service1.pas file mention that you should add some settings to a configuration file in order for the new WCF service. However, the example contains the following line:

// <service type="MyWcfServiceLibrary.Service1" behaviorConfiguration="returnFaults">

which is incorrect. The property "type" should be "name" instead.

I'm not sure if it ever was "type" in the past, but it sure is "name" now.
It's a minor typo, but the effect is that deployment may be harder for those who do not (yet) know what they are doing ;-)


A more serious problem is the fact that in the generated Service1.pas example, the following code is used:

type
[ServiceContract()]
IService1 = public interface
[OperationContract]
method MyOperation1(myValue: String): String;
[OperationContract]
method MyOperation2(dataContractValue: DataContract1): String;
end;

Service1 = public class(IService1)
private
[OperationContract]
method MyOperation1(myValue: String): String;
[OperationContract]
method MyOperation2(dataContractValue: DataContract1): String;
end;

Note the [OperationContract] on the methods for the class as well as interface. This is not allowed. The [OperationContract] attribute is only valid on methods that are declared in a type that has the [ServiceContract] attribute defined.
And no, you cannot add [ServiceContract] to the Service1 class, because there can be only one [ServiceContract] in a given hierarchy...

So the solution is to remove the [OperationContract] attributes from the method definitions in the Service1 class.

See also http://www.drbob42.com/examines/examinB4.htm
QC Entry 79736

(RO6456)
Start Delphi Prism, create a new WCF Service Library project. Examine Service1.pas file, which contains the two *generated* source code issues.
QC #: Date Reported: Area:
79925 11/30/2009 Compiler
Description: Steps:
[QC Short Description]
Lambda expression generations InvalidProgramException

QC Entry 79925

(RO6471)
1) Open and build the supplied solution 2) Run the TelerikGridWebApplication 3) Run the application You need to open default.aspx from the root of the webserver or this url /Home/_Index actual: A webpage with an error appears Server error in / application common language runtime detected an invalid program Source Error: Line 28: columns.Add(e -> e.Id); Line 29: columns.Add(e -> e.Firstname); Line 30: columns.Add(e -> e.Lastname); Line 31: end) Line 32: .ServerBinding(serverBinding -> serverBinding.Action("_Index", "Home", new class ( ajax := ViewData["ajax"] ))) expected: The webpage should run or fail with a compile error note: MvcApplication1 is a c# version of the application, that works ok. Assuming I have the Prism syntax ok it should run
QC #: Date Reported: Area:
79927 12/1/2009 Compiler
Description: Steps:
[QC Short Description]
Cirrus : Add API function to check if IType is a ValueType

[QC Description]
In the IMethodImplementationDecorator.HandleImplementation method I want to check if a parameter of the method is a value type or not.
Currently there is no simple way of doing this.
QC Entry 79927

(RO6469)
 
QC #: Date Reported: Area:
80079 12/5/2009 IDE
Description: Steps:
[QC Short Description]
Project added to existing solutions produce assemblies with build configuration in the title

[QC Description]
This applies to monodevelop on OSX.

When you add class libaries to an existing solution assembly names with the build configuration are created in the bin directory.
QC Entry 80079

(RO6480)
1) In monodevelop for osx create a new class library called firstlibrary 2) Build the solution. A class library called FirstLibrary.dll is created in the bin\debug directory 3) From the solution explorer right click on the solution name and select "add, add new project" 4) Add another class library class "SecondLibrary" 5) Build the solution expected: In addition to firstlibrary.dll created in the firstlibrary\bin\debug directory, there should also be SecondLibrary.dll created in the SecondLibrary\bin\debug directory actual: An assembly debug.dll is created in the SecondLibrary\bin directory
QC #: Date Reported: Area:
80080 12/5/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
Code completion doesn't work in monodevelop from a c# application on objects from an oxygene library

[QC Description]
The solution attached to this defect contains a csharp console application with 2 libraries. One library is in c# the other in Oxygene.

If I declare a variable using a type that comes from the Oxygene class library, attempting to use code completion on the variable results in exceptions being raised.

Code completion seems ok if the class library is developed using c#
QC Entry 80080

(RO6479)
1) Open the supplied solution and build 2) Open main.cs in SomeConsoleApplication and set the cursor after the last var line 3) Type in another. and press ctrl space. The list of methods on that class should popup. Move the cursor down so that its on "SomeMethod" expected: Should be able to select SomeMethod actual: Messagebox pops up with the errror "Error in text editor extension chain" This is the first part of the stack trace System.NullReferenceException: Object reference not set to an instance of an object at MonoDevelop.CSharp.Dom.CSharpAmbience.NormalizeTypeName (System.String typeName) [0x00000] in /Users/michael/Mono/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/CSharpAmbience.cs:120 at MonoDevelop.CSharp.Dom.CSharpAmbience.Visit (IReturnType returnType, MonoDevelop.Projects.Dom.Output.OutputSettings settings) [0x00072] in /Users/michael/Mono/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/CSharpAmbience.cs:219 at MonoDevelop.Projects.Dom.DomReturnType.AcceptVisitor[OutputSettings,String] (IDomVisitor`2 visitor, MonoDevelop.Projects.Dom.Output.OutputSettings data) [0x00000] at (wrapper static-rgctx-invoke) Note: I also attempted to use a c# class library which is part of the solution and this didn't seem to cause a problem.
QC #: Date Reported: Area:
80088 12/6/2009 Compiler
Description: Steps:
[QC Short Description]
Program compiles and runs despite of an error

[QC Description]
This code produces an PE121 error, but compiles and runs afterwards (at least with the commandline compiler).
I hope this isn't a feature :-)
QC Entry 80088

(RO6478)
Try compile the following lines The build process should stop, or the commandline compiler should have an exitcode. namespace Unnamed; interface type Program = assembly static class public class method Main(args:array of string); end; implementation class method Program.Main(args:array of string); var s:string; begin s:='test // <- PE121 Error end; end.
QC #: Date Reported: Area:
80132 12/7/2009 Compiler
Description: Steps:
[QC Short Description]
The code generated for the lambda expression is incomplete

[QC Description]
Attached to this defect are a c# class library and two console applications. One in c# and the other in Prism

The c# application works but the Prism application raises an exception.
QC Entry 80132

(RO6477)
1) Build the solution 2) Run LambdaIssueConsoleApplication 3) Run OxygeneLambdaConsoleApplication expected: Both applications should run without an exception actual: The Prism example raises an exception
QC #: Date Reported: Area:
80213 12/9/2009 Compiler
Description: Steps:
[QC Short Description]
Internal error ( (CE7) Internal error (IECW) ) evaluating typeof(T) in a lambda expression.

[QC Description]
Error:

"Error 19 (CE7) Internal error (IECW) C:\Program Files\MSBuild\RemObjects Software\Oxygene\RemObjects.Oxygene.targets 260 5 WindowsApplication2"

Prism 3.0.21.661.

QC Entry 80213

(RO6499)
A sample application to reproduce the problem is attached. Load and compile it.
QC #: Date Reported: Area:
80237 12/10/2009 Install
Description: Steps:
[QC Short Description]
|MVC ProjectTemplates/ItemTemplates are not installed on Japanese/French/German OS

[QC Description]
MVC ProjectTemplates/ItemTemplates stuff(.zip files) are not installed on Japanese/French/German OSs.

As a result, it is not able to create ASP.NET MVC application project.
QC Entry 80237

(RO6546)
1) install ASP.NET MVC 1.0 2) install Prism or 1) install Prism 2) install ASP.NET MVC 1.0 3) install Prism MVC addon
QC #: Date Reported: Area:
80312 12/13/2009 Compiler
Description: Steps:
[QC Short Description]
Error in Require error message

[QC Description]
In some conditions the automatically generated message for Require is not correct.
QC Entry 80312

(RO6513)
If I have the following Require statement in my code: Require 0 <= No < _Pages.Count; The generated code is: Debug.Assert(((0 <= No) and (No < self._Pages.Count)), 'Vis.OptionsWindow.SelectPage(No: System.Int32) precondition (0 <= No <= _Pages.Count)'); In the error message, "<" has been replaced by "<=".
QC #: Date Reported: Area:
80353 12/14/2009 Compiler
Description: Steps:
[QC Short Description]
Compiler no more accepts set constants

[QC Description]
The compiler does no more accept set constants
QC Entry 80353

(RO6523)
Compile the following class definition: Type MyClass = Public Class Public Method DoSomething (MySet : Set Of 1..10); Empty; Method Test; End; Implementation Method MyClass.Test; Begin DoSomething ([1, 2]) End; error PE19: There is no overloaded method "DoSomething" with these parameters warning PH2: Best matching "Fivb.Vis.MyClass.DoSomething(MySet: set of 1 .. 10)" doesn't match on parameter 1, parameter is "<untyped inline array>" should be "set of 1 .. 10"
QC #: Date Reported: Area:
80424 12/16/2009 IDE\Dialogs
Description: Steps:
[QC Short Description]
MonoDevelop: The packages tab in the Edit References dialog should contain RemObjects assemblies

[QC Description]
The edit references dialog should contain RemObjects assemblies so that its easy to add them to projects.
QC Entry 80424

(RO6556)
1) In monodevelop create a new console application 2) From the project manager right click on the references node and select "Edit References" from the menu 3) Look at the packages view expected: RemObjects assemblies should be listed. For example the Cirrus assemblies actual: Only mono assemblies are listed
QC #: Date Reported: Area:
80531 12/20/2009 IDE
Description: Steps:
[QC Short Description]
The Monobjc template for OSX doesn't generate the correct app filename

[QC Description]
When building the application the resulting app file is always %PROJECTNAME%.app
QC Entry 80531

(RO6555)
1) In visual studio create a new Monobjc Application(MacOS X) project 2) Build the project 3) Open a dos prompt and go to the projects bin\debug directory expected: On windows a folder should be created with the name Projectname.app ie If monobcapplication is the project name, monobjcapplication.app is the folder name actual: the folder name is always %PROJECTNAME%.app note: Its probably related but %PROJECTNAME% also appears as filename in the .app folder as well
QC #: Date Reported: Area:
80626 12/23/2009 Suggestion
Description: Steps:
[QC Short Description]
Main method does not have the command line arguments as a parameter.

[QC Description]
I would like to suggest to change the template of console and winforms apps.
Currently the program.pas file contains a Main method without parameters.
If you are new to .net and/or Prism you will have a hard time to find
out how to get to the command line arguments.
In C# the main method always has the array of String parameter.
So I think it would be a good idea to change the main method to this:

class method Main(args: array of String);
QC Entry 80626

(RO6551)
 
QC #: Date Reported: Area:
80628 12/24/2009 Compiler
Description: Steps:
[QC Short Description]
Cirrus : Internal error

[QC Description]
When working on an aspect I get an internal error.
QC Entry 80628

(RO6550)
- get the latest version of http://code.remobjects.com/p/prismaspects/ - open the included solution - open the file 'InvokeRequiredAttribute.pas' - uncomment the code at line #68 - try to compile the solution -> you will get this error: Error 11 (CE7) Internal error (Writing nil value in abstract output writer) C:\Program Files (x86)\MSBuild\RemObjects Software\Oxygene\RemObjects.Oxygene.targets 159 5 Prism.StandardAspects
QC #: Date Reported: Area:
80631 12/24/2009 Compiler
Description: Steps:
[QC Short Description]
Increment pointer does not work correctly anymore

[QC Description]
suppose p is a pointer.
inc(p) does not the same as the current public released compiler.

if I use
p := p + 1;

I get this in reflector:
Chrome: inc(p);
C# : p++;

That seems to be correct and the app does what we expect it todo.

but when I use this:

inc(p);

I get this in reflector:
Chrome: p := (p + sizeof(^Byte));
C#: p += sizeof(byte*);

I think it takes the size of a pointer to a byte and that is in my case 8 bytes...
I would have thought it would increment by one byte.
So maybe this should be like this:
Chrome: p := (p + sizeof(Byte));

QC Entry 80631

(RO6549)
 
QC #: Date Reported: Area:
80808 1/4/2010 Compiler
Description: Steps:
[QC Short Description]
Incorrect behavior in DateTime.Add method

[QC Description]
Using the DateTime.Add method, if both values used for the calculation are object properties, the metod produces an incorrect result.

If however one property value is copied to a variable before the calculation, the method works correctly.

--- Produces Incorrect result ---
incorrectResult := c.FromDate.Add( c.FromTime.TimeOfDay );

--- Produces Correct result ---
tempDate := c.FromDate;
correctResult := tempDate.Add( c.FromTime.TimeOfDay );

QC Entry 80808

(RO38199)
See the attached program example.
QC #: Date Reported: Area:
80842 1/5/2010 Compiler
Description: Steps:
[QC Short Description]
Internal Error while compiling generic class

[QC Description]
When compiling a generic class that calls an abstract class method, the compiler crashes.
QC Entry 80842

(RO6579)
Try to compile the following class definitions: Type MyAbstractClass = Public Abstract Class Public Class Method Create<TData> : TData; Abstract; Where TData Is MyAbstractClass; End; MyClass<TData> = Public Class Where TData Is MyAbstractClass; Public Method DoSomething; End; Implementation Method MyClass<TData>.DoSomething; Begin Var a := TData.Create; // Error is flagged here End; error CE7: Internal error (Exception during parsing implementation section)
QC #: Date Reported: Area:
80844 1/5/2010 Compiler
Description: Steps:
[QC Short Description]
Case values and enumeration type

[QC Description]
Can't use case values with enumeration types.
QC Entry 80844

(RO6578)
Try to compile the following class definition: Type MyEnum = Public Enum (One, Two); MyClass = Public Class Public Method DoSomething; End; Implementation Method MyClass.DoSomething; Begin Var a : MyEnum; Var s := Case a Of // Error is flagged here MyEnum.One : 'One'; MyEnum.Two : 'Two'; End; End; error CE14: Type mismatch
QC #: Date Reported: Area:
80951 1/7/2010 Compiler
Description: Steps:
[QC Short Description]
Detection of missing conditional define termination statement is missing

[QC Description]

If the {$ENDIF} coditional define termination statement is missing (deleted accidently), it's sometimes hard to find it (by misleading compiler error messages).
Delphi 2007.Net tells me "Unterminated conditional directive"
This would be helpful to have in Oxygene too.
QC Entry 80951

(RO37507)
namespace Unnamed; interface type Program = assembly static class public class method Main(args:array of string); end; implementation class method Program.Main(args:array of string); begin {$IFNDEF Test} {$ELSE} end; end.
QC #: Date Reported: Area:
81072 1/11/2010 Compiler
Description: Steps:
[QC Short Description]
Error CE15, Type mismatch error does not link to correct source line, links to .oxygene file instead.

[QC Description]
In a method that returns the wrong type, an error is generated. But the error doesn't to link to that method in the source. It links to the <OxygeneCompiler /> tag in the RemObjects.Oxygene.targets file. There is no indication where the error really occurred.
QC Entry 81072

(RO37551)
Project file attached to reproduce the problem. Open and compile. You should get error (CE15). You can see that the error entry links to teh RemObjects.Oxygene.targets file. But the type mismatch actually exists in Class1.pas. There is a comment there (in the only method in that unit) indicating where.
QC #: Date Reported: Area:
81229 1/16/2010 IDE\Code Editor
Description: Steps:
[QC Short Description]
In monodevelop on OSX code completion hangs the IDE

QC Entry 81229

(RO37484)
1) Open the supplied application 2) Open program.pas 3) Position cursor after the line //self.label.Text := instance.SomeMethod(self.text.Text); in the method ClickAction 4) Attempt to enter the commented out line using code completion i.e enter self, hit ctrl-space, select label, enter., hit ctrl-space select text, enter := etc expected: You should be able to enter the enter line using code completion actual: At some point selecting ctrl-space will hand the IDE, the spinning globe will appear and you wil have to kill the IDE using force quit
QC #: Date Reported: Area:
81258 1/18/2010 IDE\Code Editor
Description: Steps:
[QC Short Description]
if statement using chars fails with paste with c# as oxygene

QC Entry 81258

(RO37482)
1) Create a new console application 2) copy the following if ((c < '0') || (c < 'A' && c > '9') || (c > 'Z' && c < 'a') || (c > 'z')) { Console.WriteLine("if"); } else { Console.WriteLine("else"); } 3) Paste with c# as oxygene into the main method actual: if (((()) or (())) or (())) or (()) then begin Console.WriteLine(#105#102) end else begin Console.WriteLine(#101#108#115#101) end expected: if ((c < '0') or ((c < 'A') and (c > '9')) or ((c > 'Z') and (c < 'a')) or (c > 'z')) then begin Console.WriteLine('if'); end else begin Console.WriteLine('else'); end
QC #: Date Reported: Area:
81396 1/21/2010 Compiler
Description: Steps:
[QC Short Description]
Erroneous type mismatch error related to method type parameters.

[QC Description]
Not sure how to describe this one, other than to show the code that produces it and the errors it produces. It raises a primary Type mismatch error and 1 or more errors and warnings, which appear to be side-effects of the first error.

The type mismatch error indicates that type 1 (which is the correct type) cannot be assigned to TMODEL, which is a type parameter of the method in question, whereas TMODEL is not used ANYWHERE in the method. If you take the TMODEL type parameter off of the method signature, the method compiles with no other changes.

Errors:

Error 19 (CE15) Type mismatch, cannot assign System.Collections.Generic.List<TSource> to System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<TATTRIBUTE,System.Reflection.PropertyInfo>> C:\dev\trunk\WebServices\AuditService\Tap.Data\ModelRttiUnit.pas 478 6 Tap.Data


Error 20 (CE15) Type mismatch, cannot assign System.Collections.Generic.KeyValuePair<TATTRIBUTE,System.Reflection.PropertyInfo> to TMODEL C:\dev\trunk\WebServices\AuditService\Tap.Data\ModelRttiUnit.pas 477 24 Tap.Data


There are also 18 warnings.

(RO37466)
Create a new console application. Add a new class. Paste the following code block over the class1.pas code. You can remove the TMODEL type parameter from the method signature and teh method compile with no other changes. you can also change all references to TATTRIBUTE to System.Attribute and it will also compile. Of course, the idea is that I want to use TMODEL in the method, but I've removed all references to it to simplify the test case. namespace ConsoleApplication1; interface uses System, System.Collections.Generic, System.Linq, System.Reflection; type TProof = public class private public method GetPropertiesWithAttribute<TMODEL, TATTRIBUTE>(): List<PropertyInfo>; where TATTRIBUTE is System.Attribute; // This prototype works just fine. //method GetPropertiesWithAttribute<TATTRIBUTE>(): List<PropertyInfo>; where TATTRIBUTE is System.Attribute; end; implementation method TProof.GetPropertiesWithAttribute<TMODEL, TATTRIBUTE>(): List<PropertyInfo>; // This prototype works just fine. //method TProof.GetPropertiesWithAttribute<TATTRIBUTE>(): List<PropertyInfo>; var pairs: List<KeyValuePair<TATTRIBUTE, System.Reflection.PropertyInfo>>; lstProperties: List<System.Reflection.PropertyInfo>; begin result := new List<PropertyInfo>; lstProperties := typeof(List<string>).GetProperties().ToList(); pairs := lstProperties .SelectMany(p -> p.GetCustomAttributes(true) .Cast<TATTRIBUTE>() .Select(a -> new KeyValuePair<TATTRIBUTE, System.Reflection.PropertyInfo>(a, p))) .ToList(); end; end.
QC #: Date Reported: Area:
81460 1/24/2010 Compiler
Description: Steps:
[QC Short Description]
Integer addition with dynamics

[QC Description]
I try to compile the following code


var d : dynamic := 5;

var x := d + 10;
Console.WriteLine(x.ToString);


I get this error:
Error 1 (PE175) Unbekannter Typ "Microsoft.CSharp.RuntimeBinder.CSharpConvertBinder"

Pointing to the line where the integer is added to the dynamic.
QC Entry 81460


(RO37511)
 
QC #: Date Reported: Area:
81591 1/28/2010 Compiler
Description: Steps:
[QC Short Description]
No matching overload found for nested method.

[QC Description]
An inner (nested) method cannot be called. The compiler reports that no matching overload was found. The parameters are correct and should match. Of course, there need be only one method, no overloads.

The exact error message:

(PE19) There is no overloaded method "LoadSingleModelInner" with 2 parameters


When that same method is moved to the class level, it works fine.
QC Entry 81591

(RO37556)
Create a new console application. Name it QCTest. Paste this over program.pas. Build-all and then note the error. namespace QCTest; interface uses System.Linq; type ConsoleApp = class public class method Main; method LoadModel<TMODEL>(aId: object; aDeepLoad: Boolean): TMODEL; where TMODEL is class; method LoadSingleModelOuter<TMODEL>(aId: object; aDeepLoad: Boolean): TMODEL; end; implementation class method ConsoleApp.Main; begin (new ConsoleApp).LoadModel<System.Object>(0, true); end; method ConsoleApp.LoadModel<TMODEL>(aId: object; aDeepLoad: Boolean): TMODEL; method LoadSingleModelInner<TMODEL>(aId: object; aDeepLoad: Boolean): TMODEL; begin console.WriteLine('Executed LoadSingleModelInner'); end; begin // This line produces this error: // (PE19) There is no overloaded method "LoadSingleModelInner" with 2 parameters LoadSingleModelInner<TMODEL>(aId, aDeepLoad); // This works fine, and its definition is a modified // copy / paste of the LoadSingleModelInner definition. LoadSingleModelOuter<TMODEL>(aId, aDeepLoad); console.ReadLine(); end; method ConsoleApp.LoadSingleModelOuter<TMODEL>(aId: object; aDeepLoad: Boolean): TMODEL; begin console.WriteLine('Executed LoadSignleModelOuter'); end; end.
QC #: Date Reported: Area:
81622 1/29/2010 Compiler
Description: Steps:
[QC Short Description]
Building Mac application copies unnecessary XML files

[QC Description]
When building a Monobjc application for Mac OS X, not only do the Monobjc DLLs get copied to the Resoources folder of the app bundle, the matching XML files also get copied.

This increases the size of the deployed bundle by almost 8MB.

These files are totally unnecessary to running the application.
QC Entry 81622

(RO37611)
1. Create Monobjc (Mac OS X) application 2. Build application 3. Check size of app bundle, it will be around 10MB when it need only be around 2MB
QC #: Date Reported: Area:
81766 2/3/2010 Compiler
Description: Steps:
[QC Short Description]
No range checing on static arrays

QC Entry 81766

(RO37665)
- create a new console app. - replace the main method by this: class method ConsoleApp.Main(args: array of string); begin var test: Array[0..3] of String; test[0] := 'test'; test[10] := 'test'; end; This compiles but when you run it it will give a IndexOutOfBoundsException. Because 'test' is a static array I guess the compiler should check for this during compilation...
QC #: Date Reported: Area:
81913 2/7/2010 Compiler
Description: Steps:
[QC Short Description]
Sets do not operate properly in recent builds

[QC Description]
Operator + can not be perfomed in recent build
QC Entry 81913

(RO37716)
type MySet = set of ( A, B ) ; method MainForm.MainForm_Load(sender: System.Object; e: System.EventArgs); var test : MySet ; begin test := [] ; // OK test := [MySet.A] ; // OK test := test + [ MySet.A ] ; // Index was outside the bounds of the array. end; Message="Index was outside the bounds of the array." Source="WindowsApplication5" StackTrace: at <PublicImplementationDetails>.Set`1.op_Addition(Set`1 a, Set`1 b)
QC #: Date Reported: Area:
81947 2/8/2010 IDE\VS Integration
Description: Steps:
[QC Short Description]
VS2010 - Project properties are not accessible

[QC Description]
When you try to view the project properties VS2010 will crash.
QC Entry 81947

(RO37745)
 
QC #: Date Reported: Area:
81981 2/9/2010 Compiler
Description: Steps:
[QC Short Description]
Compiler still expects System.Threading.dll in .NET 4.0

[QC Description]
When creating a .NET 4.0 project and wanting to use one of the multi-threading features (like the parallel-loop), the compiler still expects a System.Threading.dll to be in the list of references.

This assembly does no longer exist in .NET 4.0, the System.Threading namespace now can be found in the mscorlib and System.Core.dll.
QC Entry 81981

(RO37775)
- Create a new .NET 4.0 console application - Use a parallel loop inside - Get the following error: Error 1 (PE250) "parallel"-Feature benötigen die Parallel Extensions (System.Threading.dll) und die Linq-Bibliotheken (System.Core.dll) (German for: "parallel"-Feature requires Parallel Extensions (System.Threading.dll) and the Linq Libraries (System.Core.dll))
QC #: Date Reported: Area:
81983 2/9/2010 Compiler
Description: Steps:
[QC Short Description]
Wrong compiler error in parallel loop in anonymous method

[QC Description]
In a parallel loop which is used in an anonymous method, the compiler can give error messages that make no sense.
QC Entry 81983

(RO37774)
- Create a new ConsoleApplication (.NET 3.5) - Add the System.Threading.dll from ParallelFX - Add the following code to the main method: var Points : Func<Double, Array of Double> := method(z : Double) : array of Double; begin var thisR := 42.0; result := new Double[100]; var dAlpha := 2 * Math.PI / result.Length; for parallel i : Integer := 0 to result.Length-1 do begin var alpha := i * dAlpha; result[i] := Math.Sin(alpha)*thisR; end; end; - The compiler will give the following errors, the first error referrs to the line "var alpha := i * dAlpha;", which does not make any sense.: Error 1 (CE16) Operator "*" cannot be applied to operands of type "array of System.String" and "System.Double" D:\My Dropbox\Programmierung\ConsoleApplication17\ConsoleApplication17\Program.pas 30 20 ConsoleApplication17 Error 2 (CE15) Type mismatch, cannot assign array of System.String to ordinal type C:\Program Files (x86)\MSBuild\RemObjects Software\Oxygene\RemObjects.Oxygene.targets 165 5 ConsoleApplication17 - Now use a "normal" method instead of the anonymous method: class method ConsoleApp.Foo(z : Double) : Array of Double; begin var thisR := 42.0; result := new Double[100]; var dAlpha := 2 * Math.PI / result.Length; for parallel i : Integer := 0 to result.Length-1 do begin var alpha := i * dAlpha; result[i] := Math.Sin(alpha)*thisR; end; end; - This gives the error: Error 1 (PE141) Method does not have a result D:\My Dropbox\Programmierung\ConsoleApplication17\ConsoleApplication17\Program.pas 36 7 ConsoleApplication17 Which makes much more sense in a parallel-loop.
QC #: Date Reported: Area:
82016 2/10/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
VS2010 project does not work with an other framework then 4.0

QC Entry 82016

(RO38113)
- Open VS2010 - Create a new Winforms app using the 3.5 framework. - compile the app --> The solution will not build error: Error 1 (MSB3454) Tracker.exe is required to correctly incrementally generate resources in some circumstances, such as when building on a 64-bit OS using 32-bit MSBuild. This build requires Tracker.exe, but it could not be found. The task is looking for Tracker.exe beneath the InstallationFolder value of the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A. To solve the problem, either: 1) Install the Microsoft Windows SDK v7.0A or later. 2) Install Microsoft Visual Studio 2010. 3) Manually set the above registry key to the correct location. Alternatively, you can turn off incremental resource generation by setting the "TrackFileAccess" property to "false". C:\Windows\Microsoft.NET\Framework\v4.0.30128\Microsoft.Common.targets 1835 9 WindowsApplication3
QC #: Date Reported: Area:
82027 2/10/2010 Compiler
Description: Steps:
[QC Short Description]
Nullable types and extension methods

[QC Description]
When defining am extension method on a Nullable type and the same type, the compiler always use the non-Nullable implementation.
QC Entry 82027

(RO37813)
1. Create a new Console Application. 2. Paste the following code to Program.pas: namespace ConsoleApplication1; interface uses System.Runtime.CompilerServices, System.Xml.Linq; type [Extension] DateTimeExtension = Public Static Class Public [Extension] Method ToXAttribute (DateTime : DateTime; Name : String) : XAttribute; End; [Extension] NullableDateTimeExtension = Public Static Class Public [Extension] Method ToXAttribute (DateTime : Nullable DateTime; Name : String) : XAttribute; End; ConsoleApp = class public class method Main(args: array of string); end; implementation Method DateTimeExtension.ToXAttribute (DateTime : DateTime; Name : String) : XAttribute; Begin Exit New XAttribute (Name, DateTime.ToString ('u')) End; Method NullableDateTimeExtension.ToXAttribute (DateTime : Nullable DateTime; Name : String) : XAttribute; Begin Exit IIf (Assigned (DateTime), New XAttribute (Name, DateTime.ToString ('u')), Nil) End; class method ConsoleApp.Main(args: array of string); begin Var DT : Nullable DateTime; Var Attr := DT.ToXAttribute ('Test') end; end. 3. Compile. 4. Look at the output in Reflector, the code of Main is: class method ConsoleApp.Main(args: array of String); begin var DT: &Nullable<DateTime>; var Attr: XAttribute := DateTimeExtension.ToXAttribute(DT.Value, 'Test') end; You can see that we take the value of DT and call the non-Nullable extension.
QC #: Date Reported: Area:
82065 2/11/2010 Compiler
Description: Steps:
[QC Short Description]
Casting constants

[QC Description]
Casting constant values does not work correctly.
QC Entry 82065

(RO37966)
Simple example: var foo := Integer(1.2); ==> (PE149) Invalid cast Results from operations between constants: var foo := Integer(2.0 * Math.PI); ==> (PE149) Invalid cast WORKS when a variable is involved: var one := 1.0; var foo := Integer(one * 2.0 * Math.PI);
QC #: Date Reported: Area:
82102 2/12/2010 Database
Description: Steps:
[QC Short Description]
Help/About gets errors from FeaturePack

[QC Description]
After installing Prism with VS2010 shell, selecting help about gets 2 error dialogs before the main display appears. Independently verified by Victor Saveanu.
QC Entry 82102

(RO39616) (should not have been assigned)
Install the Iso containing Prism and the VS2010 beta shell. Open the IDE ans select Help/About. Observe Error dialog: --------------------------- Microsoft Visual Studio --------------------------- The 'CodeGear.VsDdex.Package.BlackfishSQLDataPackage, CodeGear.VsDdex.Blackfish, Version=14.0.0.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b' package did not load correctly.The problem may have been caused by a configuration change or by the installation of another extension. You can get more information by running the application together with the /log parameter on the command line, and then examining the file 'C:\Users\Ken\AppData\Roaming\Microsoft\VisualStudio\10.0\ActivityLog.xml'.Continue to show this error message? --------------------------- Yes No --------------------------- Select Yes, Observer Error dialog: --------------------------- Microsoft Visual Studio --------------------------- The 'CodeGear.VsDdex.Package.dbExpressDataPackage, CodeGear.VsDdex.Dbx, Version=14.0.0.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b' package did not load correctly.The problem may have been caused by a configuration change or by the installation of another extension. You can get more information by running the application together with the /log parameter on the command line, and then examining the file 'C:\Users\Ken\AppData\Roaming\Microsoft\VisualStudio\10.0\ActivityLog.xml'.Continue to show this error message? --------------------------- Yes No --------------------------- Select Yes, Observer About dialog does not show Blackfish or dbexpress information.
QC #: Date Reported: Area:
82115 2/13/2010 Compiler
Description: Steps:
[QC Short Description]
Calculation using an int32 and a Decimal causes illegal code generation

QC Entry 82115

(RO38112)
- Create a new console app - Replace the main method by this: class method ConsoleApp.Main(args: array of string); begin var someDecimal: Decimal; var someInt: Int32 := 12; var indx := someInt + (8 * (someDecimal - 1)); end; - compile and run. --> you get this error: System.InvalidProgramException was unhandled Message: Common Language Runtime detected an invalid program.
QC #: Date Reported: Area:
82119 2/13/2010 IDE\Code Editor
Description: Steps:
[QC Short Description]
named parameters with import as C#

[QC Description]
when importing C# using named parameters square brackets are added to the Delphi Prism code
QC Entry 82119

(RO38111)
1) Open the supplied example solution 2) Right click on ImportFromCSharpConsoleApplication in the solution explorer and select add, import C#. From the CSharpConsoleApplication select NamedParmaters.cs expected: resulting Prism code should compile actual: CSharp var instance = new NamedParameters() { SomeOtherProperty = "", SomeProperty = "" }; becomes var instance := new NamedParameters([SomeOtherProperty := '', SomeProperty := '' ]) [] should not be there
QC #: Date Reported: Area:
82129 2/14/2010 Compiler
Description: Steps:
[QC Short Description]
CE15 Type mismatch error upon compiling numeric sets

[QC Description]
Code with numeric sets like

TMySet = set of 5 ;

Does accept operations like:

myset := [0,5] ;

Due to comiler error:

(CE15) Type mismatch, cannot assign inline array to set of 0 .. 5
QC Entry 82129

(RO38110)
type TMySet = set of 5 ; method MainForm.DoTest; var myset : TMySet ; val : Integer ; begin myset := [0,5] ; <---- THIS LINE DOES NOT COMPILE val := 0 ; myset := [val] ; <---- THIS LINE DOES NOT COMPILE if 0 in myset then MessageBox.Show( 'OK: 0' ) else MessageBox.Show( 'ERR: 0' ) ; if 3 in myset then MessageBox.Show( 'ERR: 3 ' ) else MessageBox.Show( 'OK: 3' ) ; if 5 in myset then MessageBox.Show( 'OK: 5' ) else MessageBox.Show( 'ERR: 5' ) ; myset := myset + [3] ; if 3 in myset then MessageBox.Show( 'OK: 3' ) else MessageBox.Show( 'ERR: 3' ) ; myset := myset - [0] ; if 0 in myset then MessageBox.Show( 'ERR: 0' ) else MessageBox.Show( 'OK: 0' ) ; end;
QC #: Date Reported: Area:
82144 2/15/2010 Compiler
Description: Steps:
[QC Short Description]
Stack overflow in compiler

[QC Description]
When making some error coding, the compiler crashes with stack overflow.
QC Entry 82144

(RO38109)
Try to compile the following class declaration: Type MyClass = Public Class Public Method Test <TData>; Where TData Is TData; // Error here End; {MyClass} Result: Window with MSBuild.exe has stopped working. Details: Description: Stopped working Problem signature: Problem Event Name: CLR20r3 Problem Signature 01: msbuild.exe Problem Signature 02: 3.5.30729.4926 Problem Signature 03: 4a174761 Problem Signature 04: RemObjects.Oxygene.Compiler Problem Signature 05: 3.0.22.709 Problem Signature 06: 4b745406 Problem Signature 07: f31 Problem Signature 08: 0 Problem Signature 09: System.StackOverflowException OS Version: 6.1.7600.2.0.0.256.1 Locale ID: 4108 Read our privacy statement online: http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409 If the online privacy statement is not available, please read our privacy statement offline: C:\Windows\system32\en-US\erofflps.txt
QC #: Date Reported: Area:
82221 2/17/2010 Compiler
Description: Steps:
[QC Short Description]
Default(Boolean) is True, not False

[QC Description]
Default(Boolean) is True, not False

Wiki says it should be false. In C# it is false.
QC Entry 82221

(RO38139)
Console.WriteLine(Default(Boolean)); Output says True.
QC #: Date Reported: Area:
82252 2/18/2010 Compiler
Description: Steps:
[QC Short Description]
Wrong behaviour when passing a set of chars to function

[QC Description]
A function like this

function CharInSet (
const _chr : Char ;
const _set : set of Char
) : Boolean ;
begin
Result := _chr in _set ;
end ;

returns False for some chars that are in "_set".
QC Entry 82252

(RO38155)
class function TestClass.CharInSet ( const _chr : Char ; const _set : set of Char ) : Boolean ; begin Result := _chr in _set ; end ; class procedure TestClass.Check ; var boo : Boolean ; i : Integer ; str : String ; begin str := '' ; // 'A' = Char( 65 ) .. 'Z' = Char( 90 ) for i := 65 to 90 do begin boo := TestClass.CharInSet( Char( i ), [ 'A' .. 'Z' ] ) ; if not boo then str := str + Char( i ) ; end ; Console.WriteLine( str ) ; // here str is 'PQRSTUVW' str := '' ; // 'a' = Char( 97 ) .. 'z' = Char( 122 ) for i := 97 to 122 do begin boo := TestClass.CharInSet( Char( i ), [ 'a' .. 'z' ] ) ; if not boo then str := str + Char( i ) ; end ; Console.WriteLine( str ) ; // here str is 'pqrstuvw' end ;
QC #: Date Reported: Area:
82271 2/18/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
Unknown identifier: System.Windows.Markup.IComponentConnector

[QC Description]
Created a new Windows (WPF) - WPF Application project. Failed to build generated template.

QC Entry 82271

(RO38154)
Clean install of the full kit including VS2010 on Windows 7 32-bit machine. Installed .NET 4, rebooted, and installed again. The machine have never had VS on it before. File|New Project Select Delphi Prism, Windows (WPF), WPF Application Build Fails with Errors Error 1 (PE9) Unknown identifier "System.Windows.Markup.IComponentConnector" c:\users\foslar\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1\obj\Debug\Window1.g.i.pas 45 59 WindowsApplication1 Error 2 (PE9) Unknown identifier "System.Windows.Markup.IComponentConnector" c:\users\foslar\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1\obj\Debug\Window1.g.i.pas 53 155 WindowsApplication1
QC #: Date Reported: Area:
82287 2/19/2010 IDE\VS Integration
Description: Steps:
[QC Short Description]
There is no CodeDom provider defined for this language

[QC Description]
The message "There is no CodeDom provider defined for this language" appears when trying to drag a Common WPF controls button onto a Silverlight Application form.
QC Entry 82287

(RO38197)
Fresh install of Delphi Prism on Windows 7 32-bit, using installkit with embedded VS2010. Silverlight Developer and Silverlight SDK installed. Silverlight 4 installed. File|New Project Select Delphi Prism, Silverlight, Siliverlight Application Unselect webhosting (topmost checkbox in wizard) Build Build succeeds From left hand side Toolbox Drag a Common WPF controls Button onto the design surface The message "There is no CodeDom provider defined for this language" appears, and the control is not added to the designsurface. Any further attemt to drag a the same control on to the surface fails, as it displays as a no-drop area. Pick another control. such as a checkbox, and drag it on to the design surface. The same error as described above occurs, and the same no-drop status is in effect for the checkbox. Any attemt to drop any of these controls will now be refused. Update: Problem persists after upgrading to Build 713
QC #: Date Reported: Area:
82298 2/19/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
General problems observed

QC Entry 82298

(RO38196)
VS2010 1. Tools/Options/Projects and Solutions/Delphi Prism shows "An error occured loading this property page" 2. Any Project/Properties/Application tab just has a list of "b.e"'s in the Target Framework Dropdown 3. WebApplication Project/Properties/Package/Publish Web & Package/Publish SQL tabs both show "An error occurred trying to load the page. Exception has been thrown by the target of an invocation."
QC #: Date Reported: Area:
82309 2/19/2010 IDE\Code Editor
Description: Steps:
[QC Short Description]
No Smart-Tags in VS2010

[QC Description]
Smart-Tags, e.g. for implementing interface members, are not showing in VS2010.
QC Entry 82309

(RO38378)

- Create a project - Add a class and let it implement "INotifyPropertyChanged" - No smart-tag for implementing the interface's members is displayed
QC #: Date Reported: Area:
82328 2/20/2010 IDE\Code Editor
Description: Steps:
[QC Short Description]
"extension" missing from IntelliSense

[QC Description]
The keyword "extension" is missing from IntelliSense
QC Entry 82328

(RO38192)
- Create a new code file inside a project - Start typing in the interface section - No "extension" in the IntelliSense
QC #: Date Reported: Area:
82329 2/20/2010 IDE\Code Editor
Description: Steps:
[QC Short Description]
"for" and "yield" missing from IntelliSense with for-expression

[QC Description]
When trying to create a for-loop as expression, the "for" and "yield" keywords are missing from IntelliSense
QC Entry 82329

(RO38191)

- Create a new ConsoleApp - In the Main-Method try to type the following var squares := for i : Integer := 0 to 5 yield i*i*; Neither "for" nor "yield" will be in IntelliSense.
QC #: Date Reported: Area:
82334 2/20/2010 Compiler
Description: Steps:
[QC Short Description]
Ambigious call to method

[QC Description]
I'm trying to use Fluent.NHiberate but running into compiler errors.

The error is in StoreMap.pas from Example.FirstProject.

A C# version is in Example.FirstProject.Mappings and compiles without errors

See steps
QC Entry 82334

(RO38189)
1) Open solution and build expected: Solution should compile without errors actual: Compiler error is produced Error 1 (PE98) Ambiguous call to method "HasMany<TChild>(expression: System.Linq.Expressions.Expression<System.Func<Example.FirstProject.Entities.Store,sequence of Example.FirstProject.Entities.Employee>>): FluentNHibernate.Mapping.OneToManyPart<TChild> ; HasMany<TKey,TChild>(expression: System.Linq.Expressions.Expression<System.Func<Example.FirstProject.Entities.Store,System.Collections.Generic.IDictionary<TKey,TChild>>>): FluentNHibernate.Mapping.OneToManyPart<TChild>" C:\develop\Example.FirstProject\Example.FirstProject\Mappings\StoreMap.pas 31 3 Example.FirstProject
QC #: Date Reported: Area:
82370 2/22/2010 IDE\VS Integration
Description: Steps:
[QC Short Description]
VS2010 - WPF designer does not work

QC Entry 82370

(RO38245)
- create a new WPF app in VS2010 - put a button on the form --> you get this error: --------------------------- Error Dialog --------------------------- There is no CodeDom provider defined for the language. "There is no CodeDom provider defined for the language." --------------------------- OK ---------------------------
QC #: Date Reported: Area:
82386 2/22/2010 Compiler
Description: Steps:
[QC Short Description]
Compatible types on assignment of open arrays but not when casting.

[QC Description]
When casting open arrays, arrays and sequences raise a type mismatch. However, there is no error when assigning them to a declared VAR of the same type.


// Given this...
method ConsoleApp.Method1(): List<System.Type>;
var
arr: array of System.Type;
seq: sequence of System.Type;

// All of these work
arr := array of System.Type([typeof(PropertyInfo), typeof(System.Attribute)]);

seq := sequence of System.Type(arr);

result := arr.ToList();

result := seq.ToList();

// All of these do not work.
seq := sequence of System.Type(array of System.Type([typeof(PropertyInfo), typeof(System.Attribute)]));

var x := sequence of System.Type(array of System.Type([typeof(PropertyInfo), typeof(System.Attribute)]));

result := array of System.Type([typeof(PropertyInfo), typeof(System.Attribute)]).ToList();

result := sequence of System.Type([typeof(PropertyInfo), typeof(System.Attribute)]).ToList();



See attachment for code files.
QC Entry 82386

(RO38244)
Open attached solution files in Prism (VS 2008). Pick and choose which scenarios to use by commenting and uncommenting the lines of each block in the GetTypesList method. Compile each. Any reasonable assignment to arr or seq variables is successful and both of those expose a .ToList() method which also works. If casting is used instead of assignment to one of these variables, compiler errors give various type mismatch errors.
QC #: Date Reported: Area:
82387 2/22/2010 Compiler
Description: Steps:
[QC Short Description]
Extension method for generic type

[QC Description]
When trying to extend a generic type, the copmiler produces several errors.
QC Entry 82387

(RO38243)
I have this extension method in "old" syntax: type [Extension] EnumExtender = public static class assembly [Extension] method ToXmlString<T>(value : T) : String; where T is &Enum; end; This is supposed to be translated into: extension method T.ToXmlString<T>: string; where T is &Enum; (* ...*) implementation extension method T.ToXmlString<T>: string; begin end; But then I get the following erros: - Red error marker in the editor at the end of the line: "Period (.) expected" - When compiling, it complains in the implementation section, that "T" is an unknown identifier, additionally it expects "end" after ": String" in the implementation section
QC #: Date Reported: Area:
82537 2/28/2010 Compiler
Description: Steps:
[QC Short Description]
class alias and nested classes doesnt work

[QC Description]
i'm trying to do the following:

type
MyClass = class
end;

_CLASSAlias = MyClass;

NestedClass nested in _CLASSAlias = class
end;

The compiler states (PE214) that the nested class has to be in the same assembly as the class where the class should be nested in.
QC Entry 82537

(RO38377)
Use the following statements: type MyClass = class end; _CLASSAlias = MyClass; NestedClass nested in _CLASSAlias = class end;
QC #: Date Reported: Area:
82546 2/28/2010 Compiler
Description: Steps:
[QC Short Description]
Comparing char and element of char of array fail under some circumstances

[QC Description]
Problem exists only on VS2010 and seems to be .NET 4 releated:
QC Entry 82546

(RO38335)
method lowTest( _c : Char; _ar : array of Char ) ; begin if _c = _ar[0] then MessageBox.Show( 'OK' ) else MessageBox.Show( 'ERR' ) ; end; method DoTest ; begin lowTest( #65533, [ #65533 ] ) ; // BAD lowTest( #65 , [ #65 ] ) ; // OK end;
QC #: Date Reported: Area:
82572 3/1/2010 Compiler
Description: Steps:
[QC Short Description]
Runtime exception: Common Language Runtime detected an invalid program.

[QC Description]
Related report: #82574

InvalidProgram exception is raised when calling a test method I was working on for another bug report (See related report 82574).

Attached the entire solution, binaries included, since this seems to be related to the .EXE.

This error was not present until I added 2 specific lines to the TestUnit.JITInternalLimitTest (lines 30-31):

e[0] := 1.0;
a := e;


As expected, removing those two lines seemed to fix this error.
QC Entry 82572

(RO38376)
Run the attached program from the Visual Studio 2008 IDE.
QC #: Date Reported: Area:
82574 3/1/2010 Compiler
Description: Steps:
[QC Short Description]
JIT internal limit error when calling a method containing decimal array.

[QC Description]
I encounter a runtime exception, "InvalidProgramException" with message "JIT Compiler encountered an internal limitation".

This problem seems to be specific to the System.Decimal type.

The following do NOT cause this:

- Assignment of a fixed decimal array variable to an open decimal array variable.

var e: array [0..0] of decimal;
a: array of decimal;
begin
a := e;



- Assignment of a literal float (1.0) to a decimal variable.

var d: Decimal;
begin
d := 1.0;

The following WILL cause this.

- Assignment of a value to an element in a fixed decimal array.

var e: Array [0..0] of decimal;
begin
e[0] := 1.0;

- Decimal open array assignments to an array of decimal variable.

var
a: array of decimal;
b: array of integer;
c: array of integer;
d: Decimal;
e: Array [0..0] of decimal;
begin
a := array of Decimal([Decimal(1.0)]);
a := array of Decimal([d]);
a := [d];



QC Entry 82574

(RO38375)
Load and build the attached solution. When run, you will encounter the error. Note the comments in the TestUnit class. These instruct you about what I've found when fiddling with each line in that method. Feel free to play around.
QC #: Date Reported: Area:
82575 3/1/2010 Compiler
Description: Steps:
[QC Short Description]
What should be the value of default(char)?

[QC Description]
Currently, the value of default(char) is #32 (a blank). In C#, the value is #0. If it were a field in an object/record, I assume it would be #0 as well (EVERYTHING is zero). So, shouldn't default(char) have the value #0??
QC Entry 82575

(RO38374)
Console.WriteLine(Ord(default(Char))); Output is 32
QC #: Date Reported: Area:
82581 3/1/2010 Debugger
Description: Steps:
[QC Short Description]
Debugger incorrectly evaluates x <> nil.

[QC Description]
When evaluating an expression at runtime, the debugger evalutes x <> nil as FALSE, when in fact it is true. However, the compiler correctly evaluates the expression, and an assignment thereof is reflected in the same debugging session when evaluating the variable to which it was assigned.

I've attached a sample application with some screen shots of the debugger. The erroneous value is consistent, being seen in WATCH, QUICKWATCH, and when highlighting and hovering the code editor with the mouse.
QC Entry 82581

(RO38373)
Open, build and run the attached solution with a breakpoint on lines 36 and / or 38. Evaluate the expression "keyAttr <> nil" in any debugger tool.
QC #: Date Reported: Area:
82587 3/1/2010 Compiler
Description: Steps:
[QC Short Description]
(CE7) Internal error (Exception during parsing...) when calling a generic method without type parameters.

[QC Description]
Given a method with a type parameter:

method Method1<T>;

A call to this method which does not provide the required type parameter <T>:

class2.Method1;

Raises two compiler errors. The first is as expected.

Error 1 (PE240) Generic parameter "T" for this method call could not fully be resolved c:\Work\QCTest2\QCTest2\Class1.pas 35 10 QCTest2



But the second is unexpected and may need to be fixed.


Error 2 (CE7) Internal error (Exception during parsing implementation section) c:\Work\QCTest2\QCTest2\Class1.pas 35 17 QCTest2


QC Entry 82587

(RO38372)
Create a new console application (name="QCTest2"). Add two classes (Class1 and Class2). Add the methods as shown in description. I've attached a broken solution with these classes.
QC #: Date Reported: Area:
82623 3/2/2010 Compiler
Description: Steps:
[QC Short Description]
for-loop-expression yields CE7-error

[QC Description]
In some cases, a for-loop used as expression can yield the error: "(CE7) Internal error (Exception during parsing implementation section)"
QC Entry 82623

(RO38443)
Create a new project and reference the cirrus-assembly. Then try to compile the following code. namespace NotifyAspect; interface uses System.Linq, RemObjects.Oxygene.Cirrus, RemObjects.Oxygene.Cirrus.Statements, RemObjects.Oxygene.Cirrus.Values; type DontNotifyInit = public class(Attribute, ITypeImplementationDecorator) private fFieldName : String; protected public constructor(aFieldName : String); method HandleImplementation(Services: IServices; aType: ITypeDefinition); end; implementation method DontNotifyInit.HandleImplementation(Services: IServices; aType: ITypeDefinition); begin var propChangedEvents : Array of IEvent := aType.GetEvents('PropertyChanged'); if propChangedEvents.Length <> 1 then exit; var theEvent := propChangedEvents[0]; var args := (for i : Integer := 0 to theEvent.RaiseMethod.ParameterCount-1 yield theEvent.RaiseMethod.GetParameter(i).Type).ToArray; var modifiers := (for i : Integer := 0 to theEvent.RaiseMethod.ParameterCount-1 yield theEvent.RaiseMethod.GetParameter(i).Mode).ToArray; var raiseMethod := aType.GetMethod(theEvent.RaiseMethod.Name, args, modifiers); end; constructor DontNotifyInit(aFieldName : String); begin fFieldName := aFieldName; end; end.
QC #: Date Reported: Area:
82661 3/3/2010 Compiler
Description: Steps:
[QC Short Description]
The new extension method syntax doesn't allow generic collection types with namespaces

[QC Description]
When specifying extension methods of generic collections you can't use the fully qualified name for a type

This works

extension method List<Employee>.AnotherMethod;

but this doesn't

extension method List<ExtensionNamespace.Domain.Employee>.SomeMethod;
QC Entry 82661

(RO38459)
1) Open the supplied example 2) Build expected: Solution should build actual: compiler errors Error 1 Comma "," expected C:\develop\ExtensionNamespace\ExtensionNamespace\EmployeeExtension.pas 12 48 Error 2 Semicolon expected C:\develop\ExtensionNamespace\ExtensionNamespace\EmployeeExtension.pas 12 57 Error 3 Comma "," expected C:\develop\ExtensionNamespace\ExtensionNamespace\EmployeeExtension.pas 16 56 Error 4 Semicolon expected C:\develop\ExtensionNamespace\ExtensionNamespace\EmployeeExtension.pas 16 65 Error 5 "begin" expected C:\develop\ExtensionNamespace\ExtensionNamespace\EmployeeExtension.pas 16 65
QC #: Date Reported: Area:
82781 3/8/2010 Compiler
Description: Steps:
[QC Short Description]
Mono: AppDomain.CreateInstance creates in wrong AppDomain

[QC Description]
When calling AppDomain.CreateInstance in Mono the instance is created in the root domain and not in the just created one.
Similar C# code works fine.
This seems to be a follower to QC bug #74708 and
is basicly a Mono bug.
The reason is the IL call instance instruction instead of callvirt.
I guess you have decided to work around this Mono bug, so please do it again :-)

Interesting is that the known workaround with Interface casting (_AppDomain and IObjectHandle) isn't enough. Even the ShpwApp call must be interface casted.
QC Entry 82781

(RO38620)
As i cannot add attachments (nobody ever cares ?), this is the code for the Caller-App in Prism namespace Unnamed; interface type Loader = class public method LoadProxy; end; Program = assembly static class public class method Main(args:array of string); end; implementation uses System.Runtime.Remoting, Proxy; method Loader.LoadProxy; var pad:AppDomain; poh:ObjectHandle; myproxy:IProxy; begin pad:=AppDomain.CreateDomain('ProxyDomain'); poh:=pad.CreateInstance('Proxy','Proxy.IProxy'); myproxy:=IProxy(poh.Unwrap); myproxy.ShowApp; end; class method Program.Main(args:array of string); var l:Loader; begin l:= new Loader; l.LoadProxy; end; end. And this is the code of the Proxy-Assembly namespace Proxy { using System; using System.Windows.Forms; public class IProxy:MarshalByRefObject { public void ShowApp() { MessageBox.Show(AppDomain.CurrentDomain.FriendlyName); } } } Adding the C# code isn't possible here because of QC line number restrictions :-( The MessageBox output should be 'ProxyDomain' instead of 'unnamed'
QC #: Date Reported: Area:
82920 3/11/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
VS2010: .NET 4.0 references in 2.0-project and vice versa

[QC Description]
In a .NET 2.0 project when adding a reference to an assembly, both the .NET 2.0 and the .NET 4.0 version of a .NET assembly are listed in the dialog. Same is true for a .NET 4.0 project.
QC Entry 82920

(RO38721)
- On a system with both .NET 2.0 and .NET 4.0 installed: - Create a .NET 2.0 project - Right-click on reference, choose "Add reference" - Find e.g. "System.Drawing", there will be two versions in the list
QC #: Date Reported: Area:
82921 3/11/2010 Compiler
Description: Steps:
[QC Short Description]
"self" not correctly resolved when using lambda in anonymous method

[QC Description]
When creating an anonymous method and then inside this method creating a lambda expression and *then* using the keyword "self" in this lambda not only will not only lead to strange behaviour during debugging but to wrong compiler behaviour.
QC Entry 82921

(RO38720)
I have a constructor which looks like this: constructor Movie; begin fGenres := new DelegatedCollection<Genre>( method(g : Genre) : Int32; begin //remove result := MovieDatabase.Instance.MovieGenres.FindIndex(mg -> (mg.GenreId = g.Id) and (mg.MovieId = self.Id)); if result <> - 1 then MovieDatabase.Instance.MovieGenres.RemoveAt(result); end); end; This compiles, but even if MovieDatabase.Instance.MovieGenres contains a matching item, result will be -1. I saw, that when debugging and hovering over "self" to look into its content, it shows me some cryptic things like an "@self" member. So I tried this: constructor Movie; begin fGenres := new DelegatedCollection<Genre>( method(g : Genre) : Int32; begin //remove var m := self; result := MovieDatabase.Instance.MovieGenres.FindIndex(mg -> (mg.GenreId = g.Id) and (mg.MovieId = m.Id)); if result <> - 1 then MovieDatabase.Instance.MovieGenres.RemoveAt(result); end); end; I only introduced the dummy variable "m" and now it works as expected.
QC #: Date Reported: Area:
83069 3/16/2010 Other
Description: Steps:
[QC Short Description]
no codebehind code generated when dropping components on ASP.NET webform

QC Entry 83069

(RO38816)
1. Create new webapplication 2. drop button 3, double-click or use properties inspector to generate onclick event. (in aspx file onclick is added in te form-code) but not in the codebehind .pas file
QC #: Date Reported: Area:
83190 3/20/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
VS2010: Oxfuscator not working

[QC Description]
Oxfuscator does not work at all under VS2010. I see some problems, one is that the assembly I want to be obfuscated remains readable.

See steps for more info.
QC Entry 83190

(RO39033)
- Create a new solution with a new WinForms-project in it - Add an Oxfuscator-project Problem 1: - Try to add the WinForms-project to the Oxfuscator's "Assemblies to Obfuscate": Clicking "Add" works fine, but when clicking "OK" to close the dialog I get an error message and the dialog does not close. Error message is: Wrong parameter. (Exception from HRESULT: 0x80070057 (E_INVALIDARG)) (Translated by me) - I close the dialog by hitting "Cancel". The WinForms-project does not show up in the assemblies to obfuscate. I save the whole soultion, close it and open it again -> the project is in the assemblies to obfuscate. Problem 2: - I add an event handler for the Form's load event and put this code in there: var someReadableName := 'foo'; MessageBox.Show(someReadableName); - I build the Oxfuscator project and then open the assembly of the Winforms project in Reflector. I still can read the name of the variable. Problem 3: - I want to view the properties of the Oxfuscator project, the "Exclusion" tab is not shown but only an error message "An error occurred trying"
QC #: Date Reported: Area:
83273 3/23/2010 Install
Description: Steps:
[QC Short Description]
VS2010 Installer fails without explanation when VS Shell installation fails

[QC Description]
Problem exists in .715, .719. I believe it likely exists in .721 as well.

I was running Windows XP SP2. I could not install install Prism beta from the Visual Studio 2010 ISO. The installer would walk through the installation options, then the installation would begin. A few seconds (maybe 5-10) later, it would display a message box stating something similar to "The IDE could not be installed. The installation will be canceled."

I tried changing installation components. I get the error no matter what I select. I tried selecting just Visual Studio 2008 (no subcomponents) and just Visual Studio 2010 (no subcomponents). The result is the same.

Per Victor Saveanu's suggestion, I installed just the VS2010 shell from the ISO. That installer ran and informed me that Service Pack 3 for Windows XP was required. I downloaded and installed Service Pack 3. This solved the installation problem.

Having encountered this problem, I believe it is insufficient to simply tell me that the IDE could not be installed. I need to be told why. It took 2 weeks and a forum discussion with the beta team to figure it out.
QC Entry 83273

(RO40417)
Install Prism for VS2010 on Windows XP without SP3.
QC #: Date Reported: Area:
83302 3/24/2010 Compiler
Description: Steps:
[QC Short Description]
inc() /dec() not usable within a lambda expression

[QC Description]
I have a lambda expression which contains an inc -- compiler doesn't recognize inc. Not surprisingly, it doesn't recognize dec either.
QC Entry 83302

(RO39030)
method TimedTask.Start(aContinueOnError: Boolean); begin var count := 0; Timer := new Timer(state -> begin try Action(false); count := count + 1; <------------- was inc(count); -- gives "Unknown identifier inc" if (Iterations > 0) and (count >= Iterations) then Stop; except on ex: System.Exception do begin var exc: System.Exception := ex; SetExceptionKludge(exc); if not aContinueOnError then Stop; end; end; end, nil, DueTime, Interval); end;
QC #: Date Reported: Area:
83303 3/24/2010 Compiler
Description: Steps:
[QC Short Description]
Type Compatibility Issue in Lambda

[QC Description]
Within a lambda, I tried to do a simple assignment,
Exception := ex;
where Exception is a property of the class (of type Exception) and ex was of type Exception. Got error that types weren't the same "Exception <> System.Exception". So, made all of them System.Exception. Got error that System.Exception <> System.Exception....
Wrote a method, SetExceptionKludge to do the actual setting of Exception to ex. Same problem. Finally added the line
var exc: System.Exception := ex; NOW it compiles! But still can't say Exception := exc.
QC Entry 83303

(RO39029)
method TimedTask.Start(aContinueOnError: Boolean); begin var count := 0; Timer := new Timer(state -> begin try Action(false); count := count + 1; if (Iterations > 0) and (count >= Iterations) then Stop; except on ex: System.Exception do begin var exc: System.Exception := ex; <----- what I had was Exception := ex; SetExceptionKludge(exc); if not aContinueOnError then Stop; end; end; end, nil, DueTime, Interval); end;
QC #: Date Reported: Area:
83321 3/25/2010 Suggestion
Description: Steps:
[QC Short Description]
Cirrus: please provide access to $Define

[QC Description]
It would be nice, in Cirrus, to have the ability to check the existence of $Define at the point where the aspect is applied.
In this case, for example, an aspect can change the generated code depending on the target (Silverlight or WPF), or can even be used to a functionality to a Silverlight application that exists in WPF.
QC Entry 83321

(RO39169)
 
QC #: Date Reported: Area:
83330 3/25/2010 Compiler
Description: Steps:
[QC Short Description]
Need Way to Mark Event NonSeriallized

[QC Description]
I wanted to mark an event field in a class as NonSerialized (the class has the Serializable attribute). In C#, you use

[field: NonSerialized]

but this syntax doesn't work in Prism (doesn't like field). I tried just [NonSerialized] but got the error message that ""NonSerializedAttribute" attribute is not allowed here."

This should be supported without having to explicitly define the backing field and marking it.
QC Entry 83330

(RO39167)
1) Define an event field withn a class that has the Serializable attribute. 2) Try to figure out how to mark the event as NonSerializable. 3) File this QC report
QC #: Date Reported: Area:
83418 3/28/2010 Suggestion
Description: Steps:
[QC Short Description]
[Cirrus] provide a way to create a new constant in Cirrus

[QC Description]
In Cirrus, there is no AddConstant method in ITypeDefinition, so there is no way to create a new constant.
QC Entry 83418

(RO39182)
 
QC #: Date Reported: Area:
83419 3/28/2010 Suggestion
Description: Steps:
[QC Short Description]
[Cirrus] Provide a way to define an aspect on a constant

[QC Description]
In Cirrus, there is no way to define an aspect on a constant.
QC Entry 83419

(RO39181)
 
QC #: Date Reported: Area:
83420 3/28/2010 Compatibility
Description: Steps:
[QC Short Description]
Silverlight and extension method on nullable boolean

[QC Description]
Serious error when defining an extension method on a nullable boolean
QC Entry 83420

(RO39180)
In a Silverlight application, I have the following extension method. Extension Method (Nullable Boolean).ToXAttribute (Name : String) : XAttribute; Begin Exit If Assigned (Self) Then New XAttribute (Name, Self) Else Nil End; When calling this extension method, Silverlight complains with: System.Security.VerificationException: Operation could destabilize the runtime. at xxx._Global.ToXAttribute (Nullable`1 self, String Name). If I replace the call with the content of the extension method, the code runs fine.
QC #: Date Reported: Area:
83421 3/28/2010 Compatibility
Description: Steps:
[QC Short Description]
no automatic Self in extension methods

[QC Description]
In an extension method, there should be automatic Self use when a field, method, ... in not
prefixed.
QC Entry 83421

(RO39179)
Extension Method String.SkipFirstChar : String; Begin Exit Substring (1) End; The compiler complains at Substring (1) with error PE9: Unknown identifier "Substring". But Substring is a valid method name for a string, so the compiler should understand Self.Substring in this case.
QC #: Date Reported: Area:
83423 3/28/2010 Compiler
Description: Steps:
[QC Short Description]
[Cirrus] Can have two methods with the same signature

QC Entry 83423

(RO39178)
In the first try to have a DependencyProperty aspect, there are a getter and a setter method method automatically created by the compiler: Property MyProp : MyPropType; In the aspect, new getter and setter were created with the same signature, and Cirrus doesn't complain. The new setter and getter were attached to the property. At the end, using Reflector we can see the following tree for the property: Method get_MyProp : MyPropType; Method set_MyProp (value : MyPropType); Property MyProp : MyPropType; Method get_MyProp : MyPropType; Method set_MyProp (value : MyPropType); On a normal property, the methods are only linked to the property and doesn't appear alone.
QC #: Date Reported: Area:
83454 3/30/2010 Debugger
Description: Steps:
[QC Short Description]
Unable to inspect class property in nested class

QC Entry 83454

(RO39176)
see attached solution and screenshot
QC #: Date Reported: Area:
83507 3/31/2010 IDE\Dialogs
Description: Steps:
[QC Short Description]
Monodevelop: Cannot create asp.net web applications

[QC Description]
see steps, unable to create web applications in monodevelop on OSX
QC Entry 83507

(RO39351)
1) Start monodevelop 2) Select file new solution 3) From the Prism ASP.Net section select web application 4) Fill in the Name 5) Select forward and then ok expected asp.net web application should be created actual: Error messagebox pops up and has 2 messages could not save solution "full solution filename", cannot cast from source type to destination type save failed cannot cast from source to destination type
QC #: Date Reported: Area:
83518 3/31/2010 Compiler
Description: Steps:
[QC Short Description]
Cirrus and auto-generated constructor

[QC Description]
When there is an auto-generated constructor and we are adding code to it in HandleImplementation, the inherited contsructor is not called.
QC Entry 83518

(RO39350)
In the HandleImplementation method, I have the following code: With Constructors := OwnerClass.GetConstructors Do Begin Var Ctor : IMethodDefinition; If &Event.Static Then // ... Else If Assigned (Constructors) Then If Constructors.Length = 1 Then Ctor := IMethodDefinition (Constructors [0]) Else Services.EmitError ('...'); And I know that there is only 1 constructor, that is inherited. Var Assignment := ...; Ctor.SetBody (Services, Method Begin RemObjects.Oxygene.Cirrus.Aspects.OriginalBody; Unquote (Assignment) End) And my constructor doesn't have a call to the inherited one!
QC #: Date Reported: Area:
83531 4/1/2010 Compiler
Description: Steps:
[QC Short Description]
You can't use generic constraints with the new extension method syntax

[QC Description]
You should be able to generic constraints with the new extension method syntax

for example,

extension method Helper<TModel>.SomeMethod:String; where TModel is class;
QC Entry 83531

(RO39352)
1) Open attached solution and compile expected: The project should compile without errors actual: The following error is produced /Users/JohnMoshakis/Documents/develop/ExtensionConstraint/ExtensionConstraint/Extension.pas(59,59): Error PE162: Unknown generic parameter "TMODEL" (PE162) (ExtensionConstraint)
QC #: Date Reported: Area:
83684 4/8/2010 Compiler
Description: Steps:
[QC Short Description]
Type mismatch assigning properties to a variable inside a closure.

[QC Description]
Fields work but assignments to object properties on an object inside a closure results in a type mismatch. The variable can be instantiated and assigned the object instance without a problem and public fields can be assigned, but properties of the object cannot be assigned.
QC Entry 83684

(RO39429)
Open the attached solution and build all. Expect 4 type mismatch errors for the 4 property assignments in the closure inside TDao.GetDbAccess.
QC #: Date Reported: Area:
83776 4/12/2010 Compiler
Description: Steps:
[QC Short Description]
Cirrus and Silverlight

[QC Description]
There is a problem when using Cirrus in a Silverlight 3 project:
it is not possible to add the RemoObjects.Oxygene.Cirrus.dll in Visual Studio.
The error message is:
You can't add a reference to RemObjects.Oxygene.Cirrus.dll as it was not built against the
Silverlight runtime. Silverlight projects will only work with Silverlight assemblies.
That seems totally logic, because the Cirrus dll is used by the compiler and not by the
application.
The problem is the same when I try to add my aspect library in the projet.

So I added them manually to the .oxygene file, with:
<Reference Include="OrdinaSoft.Aspects">
<HintPath>..\Bin\OrdinaSoft.Aspects.dll</HintPath>
</Reference>
<Reference Include="RemObjects.Oxygene.Cirrus">
<HintPath>C:\Program Files (x86)\Embarcadero\Delphi
Prism\Bin\RemObjects.Oxygene.Cirrus.dll</HintPath>
</Reference>

Now, I can add aspects to the Silverlight project, but the OrdinaSoft.Aspects.dll assembly
is packed in the XAP file!
If I add <Private>False</Private> to the reference, the application no more compiles.

I think that the problem must be the same with a Compact Framework application or library.
QC Entry 83776

(RO39615)
 
QC #: Date Reported: Area:
83803 4/12/2010 Compiler
Description: Steps:
[QC Short Description]
Multiple unhelpful error messages are generated when a file with extension methods has errors

[QC Description]
The supplied project is missing references to system.web and system.web.mvc

When building the project an error "Period (.) is expected" is generated for each extension method

Its a bit annoying because you have to scroll down for the real error
QC Entry 83803

(RO39614)
1) Open supplied solution and build actual: 1 of following errors are generated for each extension method Error 16 Period (.) expected c:\develop\ErrorMessagesClassLibrary\ErrorMessagesClassLibrary\DataGridHelper.pas 87 157 in addition to errors caused by missing assembly references expected: The period(.) expected errors should not be geneated
QC #: Date Reported: Area:
83874 4/14/2010 Install
Description: Steps:
[QC Short Description]
Prism installer breaks Delphi 2010 (RemObjects.Everwood.2010.dll)

[QC Description]
Upon installing Prism .725 (over previous version .723), Delphi 2010 shows an error message on startup (in front of the splash screen).


-----------------------------------------
Error Loading IDE Assembly or Package
-----------------------------------------
Failed to load IDE add in '%Everwood%\Bin\RemObjects.Everwood.2010.dll'.
Could not load file or assembly 'file:///C:\%Everwood%\Bin\RemObjects.Everwood.2010.dll' or one of its dependencies. The system cannot find the file specified.
-----------------------------------------
[ ]Remove/Disable this Assembly | OK |




I click OK and the IDE continues to load with no further complaints.
QC Entry 83874

(RO40419)
Install Delphi 2010. Install Prism beta .725 Launch Delphi 2010
QC #: Date Reported: Area:
83936 4/16/2010 Compiler
Description: Steps:
[QC Short Description]
ASP.NET Web site: error reported in wrong file

[QC Description]
Sometimes, in an ASP.NET web site, an error is reported on the copy of a file and not the original file.
It seems that it occurs with syntax errors.
QC Entry 83936

(RO39734)
1. Create a new ASP.NET Web Site. 2. In the generated Default.aspx.pas, replace the body of the _Default.Page_Load method with the following: method _Default.Page_Load(sender: Object; e: EventArgs); var a := 1 // semi-colon is missing begin end; 3. Build the project: Error 1 Semicolon expected C:\Temp\WenSite1\Default.aspx.pas 25 13 Error 2 (PE3) Semicolon expected C:\Temp\WenSite1\Default.aspx.pas 26 Error 3 (PE27) "begin" expected C:\Temp\WenSite1\Default.aspx.pas 28 Error 4 (PE24) "end" expected C:\Temp\Temporary ASP.NET Files\wensite1\faa4d892\23426789\App_Web_cymm_ijx.1.pas 30 The 4th error is reported on a temporary file!
QC #: Date Reported: Area:
83937 4/16/2010 Install
Description: Steps:
[QC Short Description]
At installation, the ItemTemplates folder is in the root of the system disc

[QC Description]
After installing the .727 version, there is an ItemTemplates folder in the root of my system disc!
QC Entry 83937

(RO40421)
Structure of the folder: c:\ ItemTemplates Oxygene Web 1033 BrowserFile.zip ContentPage.zip GlobalAsax.zip Handler.zip HTMLPage.zip jscript.zip MasterPage.zip MobileWebConfig.zip ...
QC #: Date Reported: Area:
83973 4/19/2010 IDE
Description: Steps:
[QC Short Description]
Cannot open .pas files in MonoDevelop

[QC Description]
When the Prism add-in is enabled, I cannot open some .pas files. I am attaching a screenshot of the error message that appears when trying to open/edit them. I am also attaching a sample project.

SCREENSHOT OF ERROR:
http://www.superflexible.com/sqimmob/Prism727bug.gif

user: sqimmob
pass: sqimmobwin2004
QC Entry 83973

(RO39767)
See attachment (project). Extract so that you get an absolute path /code10/Units Load project, double-click on TGGlobal.pas. If you cannot confirm the problem, please make sure you catch all exceptions in the open file hook and don't fail.
QC #: Date Reported: Area:
83999 4/20/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
No Silverlight 3 template in VS2010

[QC Description]
When you create a new Silverlight 3 application in VS2010 and want to add a new item, there is no Silverlight template available.
QC Entry 83999

(RO39815)
 
QC #: Date Reported: Area:
84000 4/20/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
Error in adding a new Silverlight page to a SL4 project

[QC Description]
In VisualStudio 2010, when you add a new page to a Silverlight project, the XAML file is named Page1.xaml, but the code-behing page is named Page1.xaml.xaml. It should be Page1.xaml.pas.
QC Entry 84000

(RO39816)
 
QC #: Date Reported: Area:
84004 4/20/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
Error in Silverlight new page template

[QC Description]
When you add a new page in a Silverlight 4 project in VS2010, the template for the new page returns errors:

Error 1 The type 'Canvas' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built. c:\temp\SilverlightApplication2\SilverlightApplication2\Page1.xaml 2 2 SilverlightApplication2
Warning 2 (MSB3245) Could not resolve this reference. Could not locate the assembly "agclr". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets 1360 9 SilverlightApplication2
Warning 3 (MSB3245) Could not resolve this reference. Could not locate the assembly "System.Silverlight". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets 1360 9 SilverlightApplication2
Error 4 System.Threading.ThreadAbortException was thrown on "c:\temp\SilverlightApplication2\SilverlightApplication2\Page1.xaml": Thread was being aborted. c:\temp\SilverlightApplication2\SilverlightApplication2\Page1.xaml 1 1 SilverlightApplication2
QC Entry 84004

(RO39814)
 
QC #: Date Reported: Area:
84051 4/22/2010 Compiler
Description: Steps:
[QC Short Description]
Internal error when using Value If with properties

[QC Description]
See steps
QC Entry 84051

(RO39903)
Compile the following class definition: Type MyClass = Public Class Public Property A : Int32; Property B : Int32; Property Invert : Boolean; Property Left : Int32 Read If Invert Then B Else A; End; Error: error CE7: Internal error (Exception while generating executable)
QC #: Date Reported: Area:
84112 4/24/2010 Compiler
Description: Steps:
[QC Short Description]
Silverlight 4 not supported

[QC Description]
New Silverlight 4 project adds references to Silverlight 3 Assemblies. You cannot integrate with other SL 4 assemblies.

If you change the references to the correct ones it doesn't compile. This is the error and the warnings of a new empty project:

Error 12 (CE73) Type "System.Action" used is defined in multiple assemblies (mscorlib, System.Core) C:\Program Files (x86)\MSBuild\RemObjects Software\Oxygene\RemObjects.Oxygene.targets 166 5 SilverlightApplication2




Warning 1 The element 'PropertyGroup' in namespace 'http://schemas.microsoft.com/developer/msbuild/2003' has invalid child element 'MSBuildAllProjects' in namespace 'http://schemas.microsoft.com/developer/msbuild/2003'. List of possible elements expected: 'Property, AllowUnsafeBlocks, AppConfigForCompiler, ApplicationIcon, ApplicationRevision,
QC Entry 84112

(RO39906)
In Visual Studio 2010 (RTM right now) - File->New Project - Select Silverlight Application - Select Silverlight 4 for Silverlight version. - Remove all wrong Silverlight 3 references. - Add new references to correct SL 4 assemblies. - Try to build.
QC #: Date Reported: Area:
84146 4/26/2010 IDE\Code Editor
Description: Steps:
[QC Short Description]
The code completion dropdown fails to show methods for objects declared using var

[QC Description]
In monodevelop unless you specify the type for an inline var declaration, the code completion dropdown will show "object reference not set to an instance of an object"
QC Entry 84146

(RO39945)
1) Open the supplied project in monodevelop on osx 2) On line 20 of program.pas put the cursor at the end of the line after request. and select control space from the keyboard expected: A dropdown should be displayed and a list of method and properties for an object of type httpwebrequest should be displayed actual: dropdown shows "object reference not set to an instance of an object: note: If I set the type as follows var request:HttpWebRequest := WebRequest.Create(url) as HttpWebRequest; then code completion works as expected
QC #: Date Reported: Area:
84171 4/27/2010 Compiler
Description: Steps:
[QC Short Description]
Error on passing var into set

[QC Description]
Attempt to make a set with variable element generates a System.NullReferenceException runtime error.
QC Entry 84171

(RO39980)
namespace test_varinset; interface uses System.Linq; type T_SomeType = public ( someTypeA, someTypeB, someTypeC ) ; T_SomeTypeSet = public set of T_SomeType ; ConsoleApp = class public class method Main( args : array of String ) ; end ; TestClass = class private FSomeTypeSet : T_SomeTypeSet ; public constructor ; public procedure doTest ; end ; implementation class method ConsoleApp.Main( args : array of String ) ; var test : TestClass ; begin test := new TestClass ; test.doTest ; end ; constructor TestClass ; begin FSomeTypeSet := [ T_SomeType.someTypeA, T_SomeType.someTypeB, T_SomeType.someTypeC ] ; end ; procedure TestClass.doTest ; var xtype : T_SomeType ; begin xtype := T_SomeType.someTypeB ; FSomeTypeSet := [ xtype ] ; // fails here end ; end.
QC #: Date Reported: Area:
84183 4/27/2010 Compiler
Description: Steps:
[QC Short Description]
Cirrus: The property ImplicitField on the IPropertyDefinition interface no longer appears to work

[QC Description]
The properties that I'm checking are declared as follows


[aspect:PropertyDependencyInjector]
property ItemRepository:LineItemRepository;

[aspect:PropertyDependencyInjector]
property InvoiceRepository:InvoiceRepository;


From the wiki

"True if this uses an implicit field (property Test: string) "

Note:

My aspect is doing the following

if(not aProperty.ImplicitField)then
begin
Services.EmitError(String.Format('The property {0} is not implict',aProperty.Name));
end;

Note: In the previous build the error was not raised
QC Entry 84183

(RO39979)
1) Open the supplied solution and build expected: solution should build actual: The following errors are raised Error 1 (ASPE) The property ItemRepository is not implict C:\develop\cirrusbreak\PrismAspects\Source\Examples\PropertyInjectorConsoleApplication\Program.pas 62 13 PropertyInjectorConsoleApplication Error 2 (ASPE) The property InvoiceRepository is not implict C:\develop\cirrusbreak\PrismAspects\Source\Examples\PropertyInjectorConsoleApplication\Program.pas 65 13 PropertyInjectorConsoleApplication
QC #: Date Reported: Area:
84184 4/27/2010 Compiler
Description: Steps:
[QC Short Description]
MVC extension methods can no longer be found when the target framework is 4.0

[QC Description]
A console application using mvd extension methods compiles when the framework is 3.5 but doesn't when its 4.0

Similar console application using C# from 4.0 compiles ok

Note:

The using MVC solution contains 2 console applications Using MVC for framework 3.5 and Using4Application for framework 4.

UsingMVCCSharp is in C# uses framework 4.0, the references are the same to Using4Application so it should compile.

QC Entry 84184

(RO39978)
1) Open Using MVC solution and build Expected: Both console applications in the solution should compile actual: error produced in Using4Application which uses framework 4.0 Error 1 (PE223) "System.Web.Routing.RouteCollection" does not contain a definition for "IgnoreRoute" in expression "collection.IgnoreRoute" C:\develop\MVCExtensionMethods\Using MVC\Using MVC\Program.pas 16 14 Using4Application
QC #: Date Reported: Area:
84206 4/29/2010 Compiler
Description: Steps:
[QC Short Description]
Error CE15 type mismatch when trying to initialize multidimensional array.

[QC Description]
When sometype is defined as an array of array of array of othertype, cannot initialise it with new.
QC Entry 84206

(RO40099)
Type T3DArray = Public Array Of Array Of Array Of Single; T3DArray2 = Public Array [0.., 0.., 0..] Of Single; MyClass = Public Class Public AField : T3DArray; AField2 : T3DArray2; Constructor; End; Implementation Constructor MyClass; Begin Var a := New Single [4, 10, 10]; // OK AField := New Single [4, 10, 10]; // Error AField2 := New Single [4, 10, 10]; // OK AField2 := New T3DArray2 (4, 10, 10); // OK End; Error is error CE15: error CE15: Type mismatch, cannot assign array[0.., 0.., 0..] of System.Single to array of array of array of System.Single
QC #: Date Reported: Area:
84214 4/29/2010 Compiler
Description: Steps:
[QC Short Description]
no warning for Assigned (Self)

[QC Description]
If we use Assigned (Self) in an instance method, the compiler doesn't emit a warning such as:
warning CH3: Boolean expression will always evaluate to "true"

As now the instance methods are always called with callvirt, Self is always assigned, so
such a warning can help flags problematic code.
QC Entry 84214

(RO40097)
 
QC #: Date Reported: Area:
84271 5/1/2010 IDE\VS Integration
Description: Steps:
[QC Short Description]
Cannot Add Project Reference to New WinForms Project

[QC Description]
Attempting to add a project reference to a new WinForms project results in an "Object reference not set to an instance of an object" error.

A workaround is to first select "Add 'Cirrus' Reference", ignore the "Object reference not set to an instance of an object error". However, the reference appears in the "Cirrus References" node instead of the "References" node in Solution Explorer.
QC Entry 84271

(RO40095)
Visual Studio 2008 =============== 1) Create a new WinForms project 2) Add a new Class Library project to the solution 3) In Solution Explorer right-click on the new WinForms project 4) Select "Add Reference" 5) In the "Add Reference" dialog, double click the class library project added in step 2 6) Click OK 7) Notice the error message "Object reference not set to an instance of an object". Alternatively 1) Open the attached solution 2) In Solution Explorer right-click on the BrokenDesignerSandbox project 3) Select "Add Reference" 4) In the "Add Reference" dialog, double click the BrokenDesignerSandbox.Controls project 5) Click OK 6) Notice the error message "Object reference not set to an instance of an object".
QC #: Date Reported: Area:
84272 5/1/2010 IDE\VS Integration
Description: Steps:
[QC Short Description]
WinForms Designer Broken When Containing Custom Control

[QC Description]
The WinForms designer breaks when a custom control is added to a form or user control.
QC Entry 84272

(RO40094)
Visual Studio 2008 =============== 1) Open the attached solution 2) In Solution Explorer right-click on the BrokenDesignerSandbox project 4) Select "Add 'Cirrus' Reference" 5) Ignore the error message "Object reference not set to an instance of an object". 6) Select "Add Reference" 7) In the "Add Reference" dialog, double click the class library project added in step 2 8) Click OK 9) Right-click on Main.pas and select "View Designer" 10) Select Build -> Rebuild Solution from the main menu 11) Open the Toolbox 12) Drag and drop an instance of CustomControl in the BrokernDesignerSandbox.Controls group to the MainForm designer (Main.pas [Design]) 13) Select Build -> Rebuild Solution from the main menu 14) Close the Main.pas [Design] document 15) Right-click on Main.pas and select "View Designer" 16) Observe the "Type of field self.customControl1 not found - are you missing an assembly reference?" error. If you restart Visual Studio and re-open the solution, the designer displays correctly. However, in my larger application, the designer does not display correctly in any situation.
QC #: Date Reported: Area:
84316 5/4/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
Add reference does not work anymore

[QC Description]
Add reference gives an error.
Only add Cirrus reference works.
QC Entry 84316

(RO40230)
- Create a new console app - add a new class lib project to the solution - try to add the class lib to the console project references --> an error occurs: --------------------------- Microsoft Visual Studio --------------------------- Object reference not set to an instance of an object. --------------------------- OK ---------------------------
QC #: Date Reported: Area:
84365 5/5/2010 Compiler
Description: Steps:
[QC Short Description]
Invalid "PH4 Field,,,is never used" error

[QC Description]
With the code in Steps, I get the error

(PH4) Field "_dataProvider" defined in type
"DataObjects,Test" is never used.

Hmmm,,,, Looks to me like it is used to calculate the value of
_factory in the very next line!

This is a simple test case to show the problem.
QC Entry 84365

(RO40185)
1) Complile this code: namespace DataObjects; interface uses System.Configuration; type Test = public static class private class var _dataProvider: String := ConfigurationManager.AppSettings.Get("DataProvider"); readonly; _factory: String := CreateFactory(_dataProvider); readonly; class method CreateFactory(dataProvider: String): String; empty; public class property Factory: String read _factory; end; implementation end. 2) Observe error message.
QC #: Date Reported: Area:
68139 10/21/2008 IDE\Code Editor
Description: Steps:
[QC Short Description]
WPF - CC without recompilation not working

[QC Description]
The item "3663: WPF: Enable CC & Co on .g.pas files without recompile" from .531's changelog isn't working in one of my projects.
QC Entry 68139

(RO5516)
As requested in this thread ( https://forums.codegear.com/thread.jspa?threadID=5415&tstart=0 ) I gave my project to Brian (RemObjects). This is just to make sure it gets tracked ;-)
QC #: Date Reported: Area:
69378 11/27/2008 IDE\Code Editor
Description: Steps:
[QC Short Description]
"Implement Interface menbers" smarttag does not work for IQueryable

QC Entry 69378

(RO5545)
- Create a new Console application (make sure to select .net 3.5) - Add the following code in the interface section: TestClass = class(IQueryable<String>) private public end; - now click on the smarttag "Implement Interface Members" you will see that there is 4 times the method "GetEnumerator" also note the strange indentations in the generated code... the resulting code will not compile...
QC #: Date Reported: Area:
70235 1/3/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
IntelliSense vs. nested class in seperate file

[QC Description]
There seems to be a bug in IntelliSense, when a nested class is put into a seperate file.

(see Steps)
QC Entry 70235

(RO5602)
(1) Please create a new ConsoleApp. (2) Now, add a new file using the class template to it, call it "ConsoleApp.SomeType.pas". (3) Now there's a "ConsoleApp" class in it (missing feature? ;-)), delete that one, put the following class in the file instead: > SomeType nested in ConsoleApp = public class > public > property Foo : String; > end; (4) Switch back to "Program.pas" and try to add a field to the ConsoleApp class: > fFoos : List<ConsoleApp.SomeType>; When typing that, you'll see, that the IntelliSense after the dot (".") isn't showing "SomeType". (5) Add a constructor (not class constructor) to the ConsoleApp class. Try to type this in the implementation: > fFoos := new List<ConsoleApp.SomeType>; When hitting Ctrl+Space after the "new", there's no List<ConsoleApp.SomeType> preselected in CC (it's not in it at all). (6) Try to type: > fFoos.Count No "Count" after the dot in CC.
QC #: Date Reported: Area:
71848 2/28/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
Autocomplete can't resolve xaml object name when page is in tree folder

QC Entry 71848

(RO5703)
I made a second xaml page in a wpf app. I decided I didn't want that xaml and its xaml.pas cluttering up the root of the project folder. So I created a new folder in the tree and moved the files there. Now when I am in the editor or the xaml.pas file, the autocomplete won't resolve the named objects on the xaml page. (I think it gets that from a partial class definition in the g.pas file. I can blindly type the object names and their methods or properties and it will successfully compile and execute. But no autocompletion. So if I remove the 2 files from the project and then add them back in (while they still physically are in the folder on disk) as existing items, they show up in the tree back under the project node (not any folder) and then the autocompletion works again.
QC #: Date Reported: Area:
72918 4/11/2009 IDE\VS Integration
Description: Steps:
[QC Short Description]
F1 Does Not Find Local Content

[QC Description]
If you clickF1 when the cursor is on a method, String.Format, for example, and the the Visual Studio 2008 settings, Options -> Help -> Onine -> When loading Help content are set to "Try local first, then online"or "Try local ony, not online", The local help topic is not found.
QC Entry 72918

(RO5786)
1) Install MSDN Library for Visual Studio 2008 (or SP1) 2) Open Visual Studio 2008 3) Create a new Delphi Prism console application 4) In the Main method in the Program.pas file, enter "String.Format" 5) Place the cursor anywhere within "Format" Case 1: 1) From the main menu, select Tools -> Options to display the options dialog 2) Select Help -> Online -> Try local first, then online 3) Click the OK button 4) Press the F1 key and notice that online (not local) help is displayed Case 2: 1) From the main menu, select Tools -> Options to display the options dialog 2) Select Help -> Online -> Try local only, not online 3) Click the OK button 4) Press the F1 key and notice the following: a) The "Information Not Found" topic is display in Document Explorer b) The text "System.String.Format" is in the "Look for" text box on the Index tab c) Change the text to "String.Format", press [Enter] and notice that three topics are listed in the "Index Results window"
QC #: Date Reported: Area:
74912 6/15/2009 Compiler
Description: Steps:
[QC Short Description]
There should be an easy way to support the iterator keyword in Cirrus

[QC Description]
The iterator keyword

http://prismwiki.codegear.com/en/iterators

When the compiler encounters this keyword on a method it generates a hidden class. It looks like this in reflector

[CompilerGenerated]
private class @Iterator_GetRuleViolations0 : IEnumerator, IEnumerable, IEnumerator<RuleViolation>, IEnumerable<RuleViolation>, IDisposable
{
// Fields
private RuleViolation @Current;
private Employee @Self;
private int @State;

// Methods
public @Iterator_GetRuleViolations0(Employee Self);
public void Dispose();
public RuleViolation get_CurrentGeneric();
public IEnumerator GetEnumerator();
public IEnumerator<RuleViolation> GetEnumeratorGeneric();
public bool MoveNext();
public void Reset();

// Properties
public object System.Collections.IEnumerator.Current { get; }
}


If I want to build a method with iterator in Cirrus I have to build this class manually. It would be nice if Cirrus could do this for you via a property.
QC Entry 74912

(RO5898)
 
QC #: Date Reported: Area:
75349 6/28/2009 Compiler
Description: Steps:
[QC Short Description]
Cirrus: "implements" for fields

[QC Description]
It would be good to be able to add the "implements" keyword to fields using Cirrus.

For example this, only in Cirrus:

TestClass = public class
private
fFoo : MyClass;
public implements IMyClass;
end;
QC Entry 75349

(RO5924)
 
QC #: Date Reported: Area:
75463 7/2/2009 Compiler
Description: Steps:
[QC Short Description]
Optimize code for Not Boolean test

[QC Description]
When the compiler generates code for a expression such as
Not <Boolean value>
the code can be optimized.
QC Entry 75463

(RO5947)
Compile the following class definition: Type MyClass = Public Class Public Method DoSomething; End; Implementation Method MyClass.DoSomething; Begin Var s := 'abc'; If Not String.IsNullOrEmpty (s) Then s := 'def' End; Look at the generated code for the test in Reflector: L_0007: call bool [mscorlib]System.String::IsNullOrEmpty(string) L_000c: ldc.i4.s 0 L_000e: ceq the second instruction can be replaced with ldc.i4.0, which is one byte shorter. In addition, when removing the Not in the expression, the compiler uses the brfalse instruction. Why not use the brtrue instruction when a not is present?
QC #: Date Reported: Area:
75517 7/3/2009 IDE\VS Integration
Description: Steps:
[QC Short Description]
Events in WPF designer (VS2008)

[QC Description]
In the WPF designer of VS2008 the following functions are missing:

- Creating events in XAML code is not working.
- Events are not shown in the Properties box
QC Entry 75517

(RO5971)
- Create a new WPF application - Try to add an event handler for the window's "Loaded" event with the following methods: - Edit the XAML code: inside the "window" tag type 'Loaded="'. Now there should be the option to create a new method, but there isn't. In fact there's notihing. - Look at the "Property" box. Only properties are displayed, not the events. There should be an events tab when the SP1 for VS2008 is installed. I attached a screenshot showing the problems.
QC #: Date Reported: Area:
75989 7/21/2009 IDE\Project Management
Description: Steps:
[QC Short Description]
System.Core.dll missing from .NET 4.0 project

[QC Description]
When creating a .NET 4.0 WinForms project, the appropriate System.Core.dll (i.e. the one from version 4.0) is missing from the references.

This is needed for dynamics to work.

Not sure if other project types are affected, too.
QC Entry 75989

(RO6182)
 
QC #: Date Reported: Area:
76874 8/20/2009 Compiler
Description: Steps:
[QC Short Description]
extend Delphi Compatibility to support := also for global variables

[QC Description]
as discussed in the NG:
please support Code like this:

var
MyGlobaleVars: TMyClass = nil;
QC Entry 76874

(RO6190)
 
QC #: Date Reported: Area:
77049 8/26/2009 Compiler
Description: Steps:
[QC Short Description]
Recursive Lambda Expressions

QC Entry 77049

(RO6204)
1. Create a new console app. 2. Paste the following code: namespace MyApp; interface uses System.Diagnostics, System.Linq; type ConsoleApp = class public class method Main; end; implementation class method ConsoleApp.Main; begin var fib: Func<Integer, Integer> := n -> begin Debug.WriteLine(n); iif(n > 1, fib(n - 1) + fib(n - 2), n); end; Console.Write(fib(3)); Console.Read(); end; end. 3. Try to build it. You won't get any usable error message.
QC #: Date Reported: Area:
77235 9/1/2009 Compiler
Description: Steps:
[QC Short Description]
No debug infos for local variables in Mono

[QC Description]
It seems that the compiler don't generates debug information for local variables in a Mono application. (OpenSUSE 11.1, Mono 2.4.2.3(

Maybe this has something to do with the warning message

** (/home/rupert/Prism/Oxygene.exe:5219): WARNING **: The class Mono.CompilerServices.SymbolWriter.ISourceMethod could not be loaded, used in Mono.CompilerServices.SymbolWriter, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756


Additionally it seems that the compiler either don't generate debug infos for indexed properties or the mono debugger isn't capable of handle that.
QC Entry 77235

(RO6227)
This has nothing to do with Steps to reproduce, but the only area i can put comments in so far... While searching for the pre-release beta builds (which was promised to be available to beta testers) I've accidentally resettet my beta status to "invited" (which was very strange). If somebody would be so kind to re-invite me i would be glad.
QC #: Date Reported: Area:
77272 9/2/2009 Compiler
Description: Steps:
[QC Short Description]
Possibly incorrect detected unreachable code

[QC Description]
When compiling the Cirruscache sample,
codeflowanalysis detects unreachable code which seems to be wrong
QC Entry 77272

(RO6239)
method CachedFibonacciNumberCalculator.Calculate(aNumber: Int32): Int64; begin if (aNumber <= 1) then // <- unreachable code ? exit (0); if (aNumber = 2) then exit (1); exit (self.Calculate(aNumber-2) + self.Calculate(aNumber-1)); end;
QC #: Date Reported: Area:
77305 9/3/2009 IDE\Project Management
Description: Steps:
[QC Short Description]
Opening Project Causes "The given path's format is not supported" Error

[QC Description]
When attempting to open a project saved with a previous build, the following error occurs:

"The given path's format is not supported."

The Solution Explorer shows the project as unloaded. In a solution that had many projects, I was able to load most projects by selecting the Reload Project Solution Explorer context menu item. But there was one that I could not load at all. Upon inspecting the project file, I noticed that the macros, $(Project) , $(ProgramFiles) and $(Framework), have been replaced with relative paths.

Is this intended? I hope it is not intended because it would cause problems when multiple team members work on the same project who are on different Windows platforms (x86 vs x64) and third-party components are used that are installed in the Program Files or Program Files (x86) directories.
QC Entry 77305

(RO6238)
1) Open the attached solution that contains Delphi Prism projects created with a previous build. 2) The DataTipsTest.oxygene project was created with a previous build, but failed to load
QC #: Date Reported: Area:
77328 9/3/2009 Compiler
Description: Steps:
[QC Short Description]
Cirrus: ITypeReference.GetProperties not working correctly

[QC Description]
I have an aspect, which implements IFieldInterfaceDecorator. In the HandleInterface method I'm doing the following thing:

var fieldType := Services.FindType(aField.Type.Fullname);
var tmp := fieldType.GetProperties('foo');
for t in tmp do
Services.EmitHint(t.Name);

I'm using this aspect in the follwing code, but "foo" is not emitted as hint:

Multi = public class
private
[aspect:Inherits]
fBaseClassOne: BaseClassOne := new BaseClassOne(self);
end;

BaseClassOne = public class
public
constructor(parent : Multi); empty;
method DoSomething; empty;
property foo : String;
end;
QC Entry 77328

(RO6237)
 
QC #: Date Reported: Area:
77383 9/5/2009 IDE
Description: Steps:
[QC Short Description]
Silverlight pages are not UTF-8

[QC Description]
When creating a Silverlight application, the Page.xaml file is not saved as UTF-8 but as "Western European".

IMHO it would be good, to create all XAML files as UTF-8, so one can use a wider range of characters.
QC Entry 77383

(RO6233)
 
QC #: Date Reported: Area:
77426 9/6/2009 Compiler
Description: Steps:
[QC Short Description]
For Matching and generics

[QC Description]
The compiler doesn't accept For Matching in some constructions with generics.
QC Entry 77426

(RO6236)
Try to compile the following classes declaration: Type BaseClass = Public Class End; DerivedClass = Public Class (BaseClass) End; MyList<TData> = Public Class Where TData Is BaseClass; Private List : List <TData>; Public Method Test; End; Implementation Method MyList<TData>.Test; Begin For Matching Data : DerivedClass In List Do; // Error here End; error CE15: Type mismatch, cannot assign TData to DerivedClass Because I'm using the For Matching construction, the code should compile. In addition DerivedClass is a descendant of BaseClass, so the code is valid.
QC #: Date Reported: Area:
77469 9/7/2009 Compiler
Description: Steps:
[QC Short Description]
.665: Implicit convert to Boolean and iif

[QC Description]
When you use a class that has an implicit conversion to Boolean in an iif statement, it is not automatically converted.
QC Entry 77469

(RO6235)
Compile the following class definition: Type MyClass = Public Class Public Class Operator Implicit (Value : MyClass) : Boolean; Class Method Test; End; Implementation Class Operator MyClass.Implicit (Value : MyClass) : Boolean; Begin Exit True End; Class Method MyClass.Test; Begin Var a : MyClass; Var b := iif (a, 1, 2) End; error CE15: Type mismatch, cannot assign MyClass to Boolean
QC #: Date Reported: Area:
77564 9/9/2009 Compiler
Description: Steps:
[QC Short Description]
Cirrus: A call to an iterator method generates the wrong code

[QC Description]
The supplied solution is composed of several projects

ValidateTestConsoleApplication is - illustrates what I am attempting to build

ValidationAspects - are my cirrus aspects
Validation - is a library that defines a class used my other projects
ValidationTestUsingAspectsConsoleApplication is code that consumes the aspects

Inside program.pas from ValidateTestConsoleApplication is a class Employee with a method GetRuleViolations, its marked as an interator method

Employee=public class
method GetRuleViolations():IEnumerable<RuleViolation>; iterator;

end;

There is another method IsValid implemented as below

var result1 := GetRuleViolations.Count;
result := (result1 = 0);

I am attempting to implement this in Cirrus

QC Entry 77564

(RO6248)
1) Open the solution and build 2) In validation.pas from the ValidationAspects project there is the method HandleInterface There is this code var isValidMethod:=aType.AddMethod('IsValid',Services.FindType('System.Boolean'),false); var getRuleViolationCall:=new ProcValue(new SelfValue(),getRuleViolations); isValidMethod.SetBody(Services, method begin unquote(getRuleViolationCall); end); If you look at this in reflector it emits base.MoveNext(); If you comment out unquote(getRuleViolationCall) instead having unquote(getInstanceProc) as shown below var enumerableType:=Services.FindType('System.Linq.Enumerable'); var getInstanceProc:= new ProcValue(new TypeValue(enumerableType), 'Count', [Services.FindType('Validation.RuleViolation') as IType], [getRuleViolationCall]); isValidMethod.SetBody(Services, method begin unquote(getInstanceProc); //unquote(getRuleViolationCall); end); it results in 2 compile errors Error 1 (PE19) There is no overloaded method "Count" with these parameters C:\Program Files\MSBuild\RemObjects Software\Oxygene\RemObjects.Oxygene.targets 312 5 ValidateTestUsingAspectsConsoleApplication Error 3 (PE267) Exception during running aspect: Invalid value in assignment C:\develop\Validation\ValidateTestUsingAspectsConsoleApplication\Program.pas 11 11 ValidateTestUsingAspectsConsoleApplication I think maybe the 2 are related and that the first piece of code is perhaps calling the wrong method which is why the second failes ?
QC #: Date Reported: Area:
77568 9/9/2009 Compiler
Description: Steps:
[QC Short Description]
Process LogicalName in EmbeddedResource

[QC Description]
In C#, when inserting an embedded resource, there is a possibility to define its logical name, using the <LogicalName> element.
In Oxygene, this element is ignored.
QC Entry 77568

(RO6249)
In C#, you can define the following entry in the msbuild file: <EmbeddedResource Include="bar.resx"> <LogicalName>notfoo.bar.resources</LogicalName> </EmbeddedResource> And then the resource can be retrieve with the notfoo.bar.resources name. If I do the same in Oxygene, the resource still have the bar.resx name.
QC #: Date Reported: Area:
77927 9/22/2009 Compiler
Description: Steps:
[QC Short Description]
Generics in Nested Types

[QC Description]
Attached hopefully is a short chunk of code using generics with no other dependencies that won't compile. The three error messages don't help much -- all type mismatches like "cannot assign T to T". I cut out a bunch of code that wasn't needed. It appears that the T in one nested type is "different" from the T in the other nested type even though it is the T from the type both nested types are nested in.
QC Entry 77927

(RO6274)
Compile attached code. No dependencies.
QC #: Date Reported: Area:
77928 9/22/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
Override added to interface implementations

[QC Description]
If you are typing the code below and type a "q" after the "E" in the "method E" line, code completion kicks in and gives you the line

method Equals(x, y: T): System.Boolean; override;

But it isn't an override -- it is the implementation of an interface definition.

Upon more study, the override only appears when using generics -- if it is a "normal" interface and class, you don't get the override added.
QC Entry 77928

(RO6275)
Type the described code into the IDE...
QC #: Date Reported: Area:
77945 9/22/2009 IDE\VS Integration
Description: Steps:
[QC Short Description]
Namespace doesn't pick up folder names

[QC Description]
If you created a new class etc in a directory within your project, the namespace USED to be named something like MyProj.Dir. Now I've only seen MyProj. No Dir(s) added to the namespace name. That's with the option checked to use dir names. You get the namespace name in the project definition. How do you get the dir names appended? Without typing them in yourself, that is!
QC Entry 77945

(RO6273)
1) Create a new project. 2) Add a directory to the project 3) Create a class in the directory you just added 4) What is the namespace name? The project name?? (I love that you can't submit a QC report without steps)
QC #: Date Reported: Area:
77994 9/24/2009 Compiler
Description: Steps:
[QC Short Description]
When a procedure is used as a function, the error message is not clear

[QC Description]
When you try to use a procedure (method without a result) as a function (trying to use the non-existent result), the compiler says:
error CE15: (CE15) Type mismatch, cannot assign <unknown type> to unknown type

The following error message would be much more easy to understand:
The method xxx has no return value.
QC Entry 77994

(RO6280)
Try to compile the following class definition: Type MyClass = Public Class Public Method MyProc; Empty; Method Test; End; Implementation Method MyClass.Test; Begin Var a := MyProc; End;
QC #: Date Reported: Area:
78176 9/29/2009 Compiler
Description: Steps:
[QC Short Description]
Static arrays are not always initialized.

[QC Description]
The Wiki states: "All instances of MyArray1 and MyArray3 will be created automatically when they are used: "
That is not always the case...
QC Entry 78176

(RO6284)
create a Static array type: Type MyStaticArray = array[0..9] of Double; if you want to use that type in a method this will work: method SomeClass.SomeMethod; var someArray: MyStaticArray; begin someArray[3] := 0.124; end; but if you do this: method SomeClass.SomeMethod; begin var someArray: MyStaticArray; someArray[3] := 0.124; end; you will get a null pointer exception. the variable someArray is nil.
QC #: Date Reported: Area:
78177 9/29/2009 Compiler
Description: Steps:
[QC Short Description]
creation and definition of multi dimension arrays the same a normal arrays

[QC Description]
Using type inference you can create normal arrays like this:

var someArray := new Double[10];

this creates an array of doubles with a dimension of 10...


It would be nice if this works:

var someOtherArray := new Double[10,10];

this would create a two dimensional array of 10 x10...

QC Entry 78177

(RO6283)
 
QC #: Date Reported: Area:
78335 10/3/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
IntelliSense vs. array as local variable

QC Entry 78335

(RO6307)
- Create a new ConsoleApplication - In the Main method, paste the following code: var ints := Array of Integer([1,2,3,4,5,6,7]); - Compile it, to see that it's valid - Type var subInts := ints. - No members of "ints" are displayed, see this screenshot: http://dl.getdropbox.com/u/1435020/prism/091003_intellisense1.png
QC #: Date Reported: Area:
78336 10/3/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
IntelliSense vs. generic extension methods

QC Entry 78336

(RO6306)
- Create an new .NET 3.5 (<-- that's important) Console Application - add a new class field: class var fInts : List<Integer> := new List<Integer>; - now, in the Main method, type the following: fInts. - you should see something like this: http://dl.getdropbox.com/u/1435020/prism/091003_intellisense2.png The generic parameters of the LINQ extension methods are not displayed correctly (at least I think so, because the generic methods of List<T> are displayed in another way) - now, select one of the LINQ extension methods, e.g. the "Where" method and hit enter, so IntelliSense inserts the method. It results in something like this: http://dl.getdropbox.com/u/1435020/prism/091003_intellisense3.png
QC #: Date Reported: Area:
78353 10/4/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
Event handler is added after "end."

[QC Description]
When using IntelliSense to create an event handler, this method is added after "end."
QC Entry 78353

(RO6304)
- Create a new Console Application - Add an event to the class: class event Foo : EventHandler; - In the Main method, type the following: Foo += and let IntelliSense create the "ConsoleApp_Foo" method for you - The method will be added after the "end."
QC #: Date Reported: Area:
78471 10/8/2009 Compiler
Description: Steps:
[QC Short Description]
The compiler doesn't allow a type nested inside a generic class

[QC Description]
When we try to define a type nested in a generic class, the compiler doesn't accept it.
It could be useful to define nested type that must only be use in descendent classes.
QC Entry 78471

(RO6313)
Try to compile the following definitions: Type MyClass<TData> = Public Abstract Class Protected Method GetData (Mode : AccessMode); AbstractM End; AccessMode Nested In MyClass<TData> = Protected Enum (Reload, Update); error PE217: Type cannot be nested in a generic class
QC #: Date Reported: Area:
78608 10/13/2009 Compiler
Description: Steps:
[QC Short Description]
Cannot Load Saxon API Assembly

[QC Description]
When attempting to compile project that references the Saxon9Api.dll, Delphi Prism does not recoginize it as a valid assembly.

Compiling a similar project in C# is successful.

This may be a regression of QC 72816 which was fixed. The issue there was because Delphi Prism did not handle referenced assemblies that contained multiple modules.

It compiles successfully with the latest version, Saxon-HE 9.2.0.2. The difference as far as I can tell is that the latest version is compiled into a single module.
QC Entry 78608

(RO6321)
1) Download Saxon-B from http://prdownloads.sourceforge.net/saxon/saxonb9-1-0-6n.zip 2) Unzip 3) Create new project or open attached project and add reference to saxon9api.dll in the bin directory of the extracted folder. 4) Add Saxon.Api to the uses statement. 5) Note that Saxon or Saxon.Api does not appear in the Object Member List [Ctrl-Space]. 6) Compiling generates the following error: (CE29) Unable to load assembly C:\Users\Dan\Downloads\Development\!Extras!\Saxon\saxonb9-1-0-6n\bin\saxon9api.dll Not a valid .NET executable (Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index) C:\Program Files (x86)\MSBuild\RemObjects Software\Oxygene\RemObjects.Oxygene.targets 312 5 SaxonSandbox
QC #: Date Reported: Area:
78689 10/15/2009 Compiler
Description: Steps:
[QC Short Description]
Support for Partial Interfaces

[QC Description]
Would be nice to be able to create partial interfaces much like partial classes. This is supported in C#, so I was surprised to see no support in Prism.

For example, in a graphics engine, you might have an IGraphics Engine interface (to the whole engine) that has a lot of stuff in it so you might want to separte that out into multiple files, like IGraphics.Buffers, IGraphics.Commands, IGraphics.Resources, IGraphics.Textures, etc.
QC Entry 78689

(RO6320)
See description/suggestion
QC #: Date Reported: Area:
78776 10/19/2009 Compiler
Description: Steps:
[QC Short Description]
Runtime return type mismatch in expression

[QC Description]
Attached is a sample solution with the very same projects, one in C#, the other in Oxygene.

All three oxygene projects are set up exactly as the C# projects are. They should behave the very same. All projects in the solution compile.

When running the C# version, everything is as it should be.
When running the Oxygene version of the application, code from the the OxygeneDemoPersistence project is applied using dynamic coe generation.

When this happens, then the marked lines will result in an exception that System.DateTime cannot be used as a return value for System.Object (which works fine in the corresponding C# project).
QC Entry 78776

(RO6343)
Please modify the Configuration class in the OxygeneDemoApplication (and CSharpDemoApplication) project so that it will connect to an empty but existing SQL Server database. Then run both the CSharpApplication and OxygeneApplication. The latter will throw an exception stating that System.DateTime is not a valid type for return type System.Object.
QC #: Date Reported: Area:
78838 10/21/2009 IDE
Description: Steps:
[QC Short Description]
Remobject Hydra does not work

QC Entry 78838

(RO6353)
- Install the Trial version of Remobjects Hydra - Try to start a new Hydra Project for Delphi Prism --> this will generate an error : --------------------------- Microsoft Visual Studio --------------------------- Object reference not set to an instance of an object. --------------------------- OK ---------------------------
QC #: Date Reported: Area:
78871 10/22/2009 IDE\Project Management
Description: Steps:
[QC Short Description]
Resources are not added to project

QC Entry 78871

(RO6352)
- create a new winforms project. - add a picturebox component to the form. - add an image to the picturebox Image property using the properties window (take any image you have on disk) - compile and run --> the app runs but there is no picture in the picturebox.
QC #: Date Reported: Area:
78936 10/23/2009 IDE
Description: Steps:
[QC Short Description]
Code completion makes the monodevelop IDE hang

QC Entry 78936

(RO6351)
1) Run monodevelop on OSX 2) Open the supplied solution file called validation.sln 3) In the ValidateTestConsoleApplication open the file program.pas 4) Scroll down to the end of the file and place the cursor on line 103, which is after if(String.IsNullOrEmpty(self.Lastname))then begin yield new RuleViolation('Lastname is required', 'Lastname'); end; 5) Type self. and press ctrl space to invoke the code completion drop down 6) A dropdown with one item is displayed actual: one line is displayed in the dropdown Error: Object reference not set to an instance of an object expected: methods for the object should be displayed Note: The very next thing you do will cause the ide to become unresponse and you will have to kill it I have added the contents of doing a kill -QUIT pid as an attachment, the file is consoleoutput.txt
QC #: Date Reported: Area:
78938 10/23/2009 IDE
Description: Steps:
[QC Short Description]
New projects created in monodevelop on osx put files in the properties folder in the wrong location

[QC Description]
See steps

Note:

This applies to both class libaries and console projects
QC Entry 78938

(RO6350)
1) Open monodevelop on osx 2) Create a new console project Expected The properties folder in the project manager should contain files actual: The entire folder is marked as invalid and files cannot be opened. Note if you go the file system the files have been created in the project root folder with "properties\" in the filename For example -rw-r--r-- 1 JohnMoshakis staff 239 22 Oct 16:41 Properties\Resources.Designer.pas -rw-r--r-- 1 JohnMoshakis staff 5493 22 Oct 16:41 Properties\Resources.resx -rw-r--r-- 1 JohnMoshakis staff 239 22 Oct 16:41 Properties\Settings.Designer.pas -rw-r--r-- 1 JohnMoshakis staff 239 22 Oct 16:41 Properties\Settings.setting
QC #: Date Reported: Area:
78946 10/24/2009 Compiler
Description: Steps:
[QC Short Description]
Internal error with "Case assignment"

[QC Description]
When using the new syntax for Case assignment, an internal error is generated by the compiler.
QC Entry 78946

(RO6349)
1. Create a new Console Application 2. Replace the ConsoleApp.Main method with the following: class method ConsoleApp.Main; begin Var s : String; Var i : Integer; s := Case i Of 0 : 'Nothing found'; 1 : 'One item found'; Else 'More than one item found' End; end; 3. Compile Error 1 (CE7) Internal error (Exception while generating executable) C:\Program Files\MSBuild\RemObjects Software\Oxygene\RemObjects.Oxygene.targets 159 5 ConsoleApplication1
QC #: Date Reported: Area:
78949 10/24/2009 Compatibility
Description: Steps:
[QC Short Description]
($Project) not recognized in .oxygene files

[QC Description]
When compiling a .oxygene file with references using ($Project), an error is generated (reference not find).
Compiling the same project with .669 works correctly.
QC Entry 78949

(RO6348)
none
QC #: Date Reported: Area:
79019 10/27/2009 Compiler
Description: Steps:
[QC Short Description]
Lambda expressions make abbreviated delegate syntax fail

[QC Description]
Prism does not support use of += operator in lambda expressions. The compiler will either fail the build with _no_ error messages, or complain at the use of +=
QC Entry 79019

(RO6354)
Add this code into a console app's Program.pass file, and play around with the 4 tests at the bottom: type OnSomeEventDelegate = delegate(Sender: Object; Args: EventArgs); Test = class private fOnSomeEvent : OnSomeEventDelegate; public event OnSomeEvent: OnSomeEventDelegate delegate fOnSomeEvent; end; Tester = class method TheHandler(Sender: Object; Args: EventArgs); method TheHelper(param: Action<Test>); method DoIt; end; ..... method Tester.TheHandler(Sender: Object; Args: EventArgs); begin end; method Tester.TheHelper(param: Action<Test>); begin end; {$define TEST1} {.$define TEST2} {.$define TEST3} {.$define TEST4} method Tester.DoIt; begin //1) Direct delegate assignment. Build succeeds, no errors //This tells us that += is generally funcctional {$ifdef TEST1} var t: Test := new Test(); t.OnSomeEvent += TheHandler; {$endif} //2) Lambda onto delegate variable. Build fails, no errors {$ifdef TEST2} var assignment: Action<Test> := t -> begin t.OnSomeEvent += TheHandler end; {$endif} //3) Lambda onto delegate variable without begin/end. Build fails with errors {$ifdef TEST3} var assignment: Action<Test> := t -> t.OnSomeEvent += TheHandler; {$endif} //4 )Lambda into delegate directly. Build fails with errors {$ifdef TEST4} TheHelper(t -> t.OnSomeEvent += TheHandler); {$endif} end;
QC #: Date Reported: Area:
79131 10/30/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
Can't enumerate sets

[QC Description]
Existing Delphi 2006 allows you to enumerate the elements of a set using code similar to the following snippet.

var
MySet: set of Element; {But see bug 73450}
E: Element;

for E in MySet do
DoStuff(E);


Prism complains that MySet does not implement IEnumerable, which is true but unhelpful.

Note that a suggested workaround of defining an IEnumerator/IEnumerable won't work because I can't do the following because bug 73450 prevents me from declaring a variable with type "set of T":

SetEnumerator<T> = public class(IEnumerator<T>)
private
Elements: set of T;
etc...
QC Entry 79131

(RO6382)
type Element = class end; ElementSet = set of Element; var MySet: ElementSet; for E: Element in MySet do DoStuff(E);
QC #: Date Reported: Area:
79138 10/31/2009 IDE
Description: Steps:
[QC Short Description]
MD Project Template broken

[QC Description]
On MD/Mac OS X the new project template is broken.

The Files that should be in the folder Properties (Assemblyinfo, Resources.resx + designer file, Settings.settings + designer file) are not in an folder but NAMED "Properties\Filename".
QC Entry 79138

(RO6371)
Create a new console project.
QC #: Date Reported: Area:
79151 11/1/2009 Debugger
Description: Steps:
[QC Short Description]
Cannot inspect properties of an object

[QC Description]
If I drag an object of type JSonValue into the watch window and expand it the properties of the object are not displayed.

This also applies to the locals window
QC Entry 79151

(RO6369)
1) Open the supplied project and built it 2) Set a breakpoint on line 31 of program.pas, this is if(assigned(something))then which is inside ConsoleApp.Man 3) Run the application and the breakpoint should be hit 4) Attempt to inspect the variable something in the locals window, expand the object so that its properties are listed expected: The properties of the type jsonvalue should be listed with their values actual: the properties names are all blank and they have no value
QC #: Date Reported: Area:
79170 11/2/2009 IDE
Description: Steps:
[QC Short Description]
Create new folder fails (MD)

[QC Description]
When creating a new folder, an exception is rised. The folder is created, after all. But after this, the project wants to compile the Folder (treating it like it was a file).

The project is not compilable anymore.

QC Entry 79170

(RO6368)
With .682, create a new Project. Create a folder in it. An exception should rise and the project is not able to compile anymore. The exception is: System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.ArgumentNullException: Der Wert darf nicht NULL sein. bei System.Threading.Monitor.Enter(Object obj) bei c.T.A(String A, i a, T B) bei c.T.a(String A) bei c.T.d(String A) bei A.S.B(Object A, ProjectFileEventArgs a) bei MonoDevelop.Projects.ProjectFileEventHandler.Invoke(Object sender, ProjectFileEventArgs e) bei MonoDevelop.Projects.Project.OnFileAddedToProject(ProjectFileEventArgs e) bei MonoDevelop.Projects.Project.NotifyFileAddedToProject(ProjectFile file) bei MonoDevelop.Projects.Project.OnItemAdded(Object obj) bei MonoDevelop.Projects.DotNetProject.OnItemAdded(Object obj) bei MonoDevelop.Projects.ProjectItemCollection`1.NotifyAdded(Object item, Boolean comesFromParent) bei MonoDevelop.Projects.ProjectItemCollection`1.MonoDevelop.Projects.IItemListHandler.InternalAdd(Object obj, Boolean comesFromParent) bei MonoDevelop.Projects.ProjectItemCollection`1.NotifyAdded(Object item, Boolean comesFromParent) bei MonoDevelop.Projects.ProjectItemCollection`1.OnItemAdded(T item) bei MonoDevelop.Projects.ItemCollection`1.InsertItem(Int32 index, T item) bei System.Collections.ObjectModel.Collection`1.Add(T item) bei MonoDevelop.Ide.Gui.Pads.ProjectPad.FolderCommandHandler.AddNewFolder() --- Ende der internen Ausnahmestapelüberwachung --- bei System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) bei System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) bei System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) bei MonoDevelop.Components.Commands.DefaultCommandHandler.Run(Object target, Command cmd) bei MonoDevelop.Components.Commands.CustomCommandTargetAttribute.Run(Object target, Command cmd) bei MonoDevelop.Ide.Gui.Components.NodeCommandHandler.TransactedNodeHandlerAttribute.Run(Object target, Command cmd) bei MonoDevelop.Components.Commands.CustomCommandTargetAttribute.MonoDevelop.Components.Commands.ICommandTargetHandler.Run(Object target, Command cmd) bei MonoDevelop.Components.Commands.CommandHandlerInfo.Run(Object cmdTarget, Command cmd) bei MonoDevelop.Components.Commands.CommandManager.<>c__DisplayClass8.<DispatchCommand>b__1() bei MonoDevelop.Components.Commands.CommandManager.DispatchCommand(Object commandId, Object dataItem, Object initialTarget)
QC #: Date Reported: Area:
79201 11/3/2009 Compiler
Description: Steps:
[QC Short Description]
Compiler forgets to generate a .ret IL instruction

[QC Description]
In some cases, the compiler forgets to generate a .ret IL instruction.
QC Entry 79201

(RO6381)
Compile the following class definition: Type ErrorClass = Public Class Public Method DoSomething; End; Implementation Method ErrorClass.DoSomething; Begin Var i : Integer; Case i Of 0 : Exit; 1 : Raise New Exception ('Case 1'); Else Raise New Exception ('Case 2') End End; Then look at Reflector output: Chrome or C#: // This item is obfuscated and can not be translated. IL: .method public hidebysig instance void DoSomething() cil managed { .maxstack 2 .locals init ( [0] int32 i, [1] int32 <case variable>) L_0000: ldloc.0 L_0001: stloc.1 L_0002: ldloc.1 L_0003: ldc.i4.0 L_0004: beq.s L_000c L_0006: ldloc.1 L_0007: ldc.i4.1 L_0008: beq.s L_000f L_000a: br.s L_001c L_000c: ret L_000d: br.s L_0027 L_000f: ldstr "Case 1" L_0014: newobj instance void [mscorlib]System.Exception::.ctor(string) L_0019: throw L_001a: br.s L_0027 L_001c: ldstr "Case 2" L_0021: newobj instance void [mscorlib]System.Exception::.ctor(string) L_0026: throw } There is 2 jumps at instruction L_0027, that does not exist. So when running the program, it throws a System.InvalidProgramException.
QC #: Date Reported: Area:
79334 11/8/2009 IDE
Description: Steps:
[QC Short Description]
Opening a .pas file in monodevelop results in an exception dialog being raised

[QC Description]
You can't use monodevelop to open .pas file without a project open or if you have a project open you can't open a .pas file that isn't in the current project
QC Entry 79334

(RO35869)
1) Open monodevelop 2) Select file open from the menu 3) Select a .pas file actual: An exception dialog is displayed with the error "error while executing the command: open" System.NullReferenceException: Object reference not set to an instance of an object at MonoDevelop.Projects.SolutionItem.get_ExtendedProperties () [0x00000] in /Users/michael/Mono/monodevelop/main/src/core/MonoDevelop.Projects/MonoDevelop.Projects/SolutionItem.cs:156 at A.T.op_Implicit (MonoDevelop.Projects.DotNetProject A) [0x00000] at RemObjects.Oxygene.MonoDevelop.Project.OxygeneCodeCompletion.Initialize () [0x00000] at MonoDevelop.Ide.Gui.Content.TextEditorExtension.Initialize (MonoDevelop.Ide.Gui.Document document) [0x00007] in /Users/michael/Mono/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/TextEditorExtension.cs:49 at MonoDevelop.Ide.Gui.Document.OnDocumentAttached () [0x0008b] in /Users/michael/Mono/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs:482 at MonoDevelop.Ide.Gui.Workbench.WrapDocument (IWorkbenchWindow window) [0x0004f] in expected: The file should open in the editor
QC #: Date Reported: Area:
79336 11/8/2009 IDE\Dialogs
Description: Steps:
[QC Short Description]
When creating projects monodevelop solutions have some of the delphi compatibility options turned on

[QC Description]
Compiler compatibility options should be the same inside MonoDevelop and Visual Studio
QC Entry 79336

(RO35868)
1) Open monodevelop and create a new Oxygene console project 2) In the project manager select options from the right click menu 3) The project options dialog is displayed, select build compatibility Actual: The compiler compatibility options "allow globals, allow create constructor calls and allow implicit var/out in method calls" are turned on expected: On Windows inside Visual Studio these options are not turned on, this should also be the case for MonoDevelop
QC #: Date Reported: Area:
79357 11/9/2009 Compiler
Description: Steps:
[QC Short Description]
Improper forward class generetion in impelementatiin section

[QC Description]
If classes are define din implementation section then forward class decalration is not possible
QC Entry 79357

(RO6395)
Case A with implicit forward declatation =============================== implementation type T_ClassRoot = class public Test : Double ; end; T_ClassA = class private ref : T_ClassB ; #### UNKNOWN T_ClassB ###### end ; T_ClassB = class( T_ClassRoot ) end; Case B with explicit forward declaration: =============================== implementation type T_ClassB = class ; T_ClassRoot = class public Test : Double ; end; T_ClassA = class private ref : T_ClassB ; end ; T_ClassB = class( T_ClassRoot ) end; method MainForm.DoTest ; var z : T_ClassB ; begin z := new T_ClassB ; z.Test := 1; #### Test is not visible ###### end;
QC #: Date Reported: Area:
79383 11/10/2009 Compiler
Description: Steps:
[QC Short Description]
When using Embed As Resource in monodevelop the resulting assembly resource includes the folder name

[QC Description]
When the build action of an item is set to Embed as resource, there is a resource id property that can be set. The resource should be named using this id, unfortunately in addition to the ID the folder name is pre-pended in the assembly.

C# just uses the ID

QC Entry 79383

(RO6419)
1) Open the supplied projects and build. There is 1 project for C# called AddResourceConsoleProject and another for Oxygene called OxygeneAddResourceConsole. Both projects have a text file added to the project with the build action set to embed as resource 2) Open reflector and open the assemblies from each project expected: As can be seen in the C# assembly the ID of the resource is AddResourceConsoleProject.SomeText.txt In the Oxygene assembly the ID should be OxygeneAddResourceConsole.SomeText.txt actual: The ID of the resource in the assemby is .Users.JohnMoshakis.Documents.develop.Resources.OxygeneAddResourceConsole.OxygeneAddResourceConsole.SomeText.txt The folder name of the text file is included and it shouldn't be
QC #: Date Reported: Area:
79388 11/10/2009 IDE\Dialogs
Description: Steps:
[QC Short Description]
The tab preferences in the monodevelop editor cannot be changed

[QC Description]
The tab preference of 4 characters cannot be changed because even though the
QC Entry 79388

(RO6418)
1) Open monodevelop 2) Create a new console application 3) From the menu select monodevelop and selected preferences. 4) The options dialog should appear 5) Scroll down to the bottom and select Delphi Prism from the other section. Expand the Delphi Prism node and select tabs 6) Set tab and indent size to 16 7) Close the dialog and open a .pas file in the editor 8) Scroll to a line with code and hit return, so that a new line appears. 9) Move the cursor to the start of the line and hit tab expected: The cursor should move 16 characters over actual: The cursor moves 4 characters over. Its as if its always stuck at 4
QC #: Date Reported: Area:
79545 11/16/2009 Compiler
Description: Steps:
[QC Short Description]
anonymous methodes not working in Cirrus

[QC Description]
This will not work in Cirrus:

method InvokeRequiredAttribute.HandleImplementation(Services: RemObjects.Oxygene.Cirrus.IServices; aMethod: RemObjects.Oxygene.Cirrus.IMethodDefinition);
begin
aMethod.SetBody(Services, method begin
var m := method begin end;
end);
end;


This means it is impossible to make a call to for example Control.Invoke as it expects a delegate and you can't create a delegate in cirrus.
QC Entry 79545

(RO6440)
 
QC #: Date Reported: Area:
79552 11/16/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
CC is not working propertly in VS2008

QC Entry 79552

(RO6441)
- Create a new Console application. - Go to the Main method and make sure it is empty. - Type this : "Cons" --> now you have CC and you can select the Console class. - now continue "Console.Wr" --> No CC when trying to complete Console.WriteLine Also after "Console.WriteLine(" you will get no parameter CC (CTRL + SHIFT + SPACE)
QC #: Date Reported: Area:
79705 11/21/2009 Compiler
Description: Steps:
[QC Short Description]
AutoInjectIntoAttribute injects the same methods more than once

[QC Description]
Occurs during the creation of a Cirrus Aspect targeting methods. Will occur if the developer includes a method intended to be Auto injected with the [Aspect:AutoInjectIntoTarget] attribute.

If the developer then adds the Aspect to more than one method within the same target class, the compiler will produce an error. The Error states that the method that was AutoInjected is now an ambiguous reference, leading me to believe that it has attempted to inject the method more than once.
QC Entry 79705

(RO6453)
1. Create an Aspect with [AttributeUsage(AttributeTargets.Method)] 2. Create a method which is called from within the Method Aspects HandleImplementation. 3. Mark the called method with the [Aspect:AutoInjectIntoTarget] so that it will be injected into the target class. 4. Add the Aspect to more than one method within the same target class.
QC #: Date Reported: Area:
79736 11/23/2009 Other
Description: Steps:
[QC Short Description]
WCF Service Library sample errors

[QC Description]
When creating a WCF Service Library, the comments in the Service1.pas file mention that you should add some settings to a configuration file in order for the new WCF service. However, the example contains the following line:

// <service type="MyWcfServiceLibrary.Service1" behaviorConfiguration="returnFaults">

which is incorrect. The property "type" should be "name" instead.

I'm not sure if it ever was "type" in the past, but it sure is "name" now.
It's a minor typo, but the effect is that deployment may be harder for those who do not (yet) know what they are doing ;-)


A more serious problem is the fact that in the generated Service1.pas example, the following code is used:

type
[ServiceContract()]
IService1 = public interface
[OperationContract]
method MyOperation1(myValue: String): String;
[OperationContract]
method MyOperation2(dataContractValue: DataContract1): String;
end;

Service1 = public class(IService1)
private
[OperationContract]
method MyOperation1(myValue: String): String;
[OperationContract]
method MyOperation2(dataContractValue: DataContract1): String;
end;

Note the [OperationContract] on the methods for the class as well as interface. This is not allowed. The [OperationContract] attribute is only valid on methods that are declared in a type that has the [ServiceContract] attribute defined.
And no, you cannot add [ServiceContract] to the Service1 class, because there can be only one [ServiceContract] in a given hierarchy...

So the solution is to remove the [OperationContract] attributes from the method definitions in the Service1 class.

See also http://www.drbob42.com/examines/examinB4.htm
QC Entry 79736

(RO6456)
Start Delphi Prism, create a new WCF Service Library project. Examine Service1.pas file, which contains the two *generated* source code issues.
QC #: Date Reported: Area:
79925 11/30/2009 Compiler
Description: Steps:
[QC Short Description]
Lambda expression generations InvalidProgramException

QC Entry 79925

(RO6471)
1) Open and build the supplied solution 2) Run the TelerikGridWebApplication 3) Run the application You need to open default.aspx from the root of the webserver or this url /Home/_Index actual: A webpage with an error appears Server error in / application common language runtime detected an invalid program Source Error: Line 28: columns.Add(e -> e.Id); Line 29: columns.Add(e -> e.Firstname); Line 30: columns.Add(e -> e.Lastname); Line 31: end) Line 32: .ServerBinding(serverBinding -> serverBinding.Action("_Index", "Home", new class ( ajax := ViewData["ajax"] ))) expected: The webpage should run or fail with a compile error note: MvcApplication1 is a c# version of the application, that works ok. Assuming I have the Prism syntax ok it should run
QC #: Date Reported: Area:
79927 12/1/2009 Compiler
Description: Steps:
[QC Short Description]
Cirrus : Add API function to check if IType is a ValueType

[QC Description]
In the IMethodImplementationDecorator.HandleImplementation method I want to check if a parameter of the method is a value type or not.
Currently there is no simple way of doing this.
QC Entry 79927

(RO6469)
 
QC #: Date Reported: Area:
80079 12/5/2009 IDE
Description: Steps:
[QC Short Description]
Project added to existing solutions produce assemblies with build configuration in the title

[QC Description]
This applies to monodevelop on OSX.

When you add class libaries to an existing solution assembly names with the build configuration are created in the bin directory.
QC Entry 80079

(RO6480)
1) In monodevelop for osx create a new class library called firstlibrary 2) Build the solution. A class library called FirstLibrary.dll is created in the bin\debug directory 3) From the solution explorer right click on the solution name and select "add, add new project" 4) Add another class library class "SecondLibrary" 5) Build the solution expected: In addition to firstlibrary.dll created in the firstlibrary\bin\debug directory, there should also be SecondLibrary.dll created in the SecondLibrary\bin\debug directory actual: An assembly debug.dll is created in the SecondLibrary\bin directory
QC #: Date Reported: Area:
80080 12/5/2009 IDE\Code Editor
Description: Steps:
[QC Short Description]
Code completion doesn't work in monodevelop from a c# application on objects from an oxygene library

[QC Description]
The solution attached to this defect contains a csharp console application with 2 libraries. One library is in c# the other in Oxygene.

If I declare a variable using a type that comes from the Oxygene class library, attempting to use code completion on the variable results in exceptions being raised.

Code completion seems ok if the class library is developed using c#
QC Entry 80080

(RO6479)
1) Open the supplied solution and build 2) Open main.cs in SomeConsoleApplication and set the cursor after the last var line 3) Type in another. and press ctrl space. The list of methods on that class should popup. Move the cursor down so that its on "SomeMethod" expected: Should be able to select SomeMethod actual: Messagebox pops up with the errror "Error in text editor extension chain" This is the first part of the stack trace System.NullReferenceException: Object reference not set to an instance of an object at MonoDevelop.CSharp.Dom.CSharpAmbience.NormalizeTypeName (System.String typeName) [0x00000] in /Users/michael/Mono/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/CSharpAmbience.cs:120 at MonoDevelop.CSharp.Dom.CSharpAmbience.Visit (IReturnType returnType, MonoDevelop.Projects.Dom.Output.OutputSettings settings) [0x00072] in /Users/michael/Mono/monodevelop/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Dom/CSharpAmbience.cs:219 at MonoDevelop.Projects.Dom.DomReturnType.AcceptVisitor[OutputSettings,String] (IDomVisitor`2 visitor, MonoDevelop.Projects.Dom.Output.OutputSettings data) [0x00000] at (wrapper static-rgctx-invoke) Note: I also attempted to use a c# class library which is part of the solution and this didn't seem to cause a problem.
QC #: Date Reported: Area:
80088 12/6/2009 Compiler
Description: Steps:
[QC Short Description]
Program compiles and runs despite of an error

[QC Description]
This code produces an PE121 error, but compiles and runs afterwards (at least with the commandline compiler).
I hope this isn't a feature :-)
QC Entry 80088

(RO6478)
Try compile the following lines The build process should stop, or the commandline compiler should have an exitcode. namespace Unnamed; interface type Program = assembly static class public class method Main(args:array of string); end; implementation class method Program.Main(args:array of string); var s:string; begin s:='test // <- PE121 Error end; end.
QC #: Date Reported: Area:
80132 12/7/2009 Compiler
Description: Steps:
[QC Short Description]
The code generated for the lambda expression is incomplete

[QC Description]
Attached to this defect are a c# class library and two console applications. One in c# and the other in Prism

The c# application works but the Prism application raises an exception.
QC Entry 80132

(RO6477)
1) Build the solution 2) Run LambdaIssueConsoleApplication 3) Run OxygeneLambdaConsoleApplication expected: Both applications should run without an exception actual: The Prism example raises an exception
QC #: Date Reported: Area:
80213 12/9/2009 Compiler
Description: Steps:
[QC Short Description]
Internal error ( (CE7) Internal error (IECW) ) evaluating typeof(T) in a lambda expression.

[QC Description]
Error:

"Error 19 (CE7) Internal error (IECW) C:\Program Files\MSBuild\RemObjects Software\Oxygene\RemObjects.Oxygene.targets 260 5 WindowsApplication2"

Prism 3.0.21.661.

QC Entry 80213

(RO6499)
A sample application to reproduce the problem is attached. Load and compile it.
QC #: Date Reported: Area:
80237 12/10/2009 Install
Description: Steps:
[QC Short Description]
|MVC ProjectTemplates/ItemTemplates are not installed on Japanese/French/German OS

[QC Description]
MVC ProjectTemplates/ItemTemplates stuff(.zip files) are not installed on Japanese/French/German OSs.

As a result, it is not able to create ASP.NET MVC application project.
QC Entry 80237

(RO6546)
1) install ASP.NET MVC 1.0 2) install Prism or 1) install Prism 2) install ASP.NET MVC 1.0 3) install Prism MVC addon
QC #: Date Reported: Area:
80312 12/13/2009 Compiler
Description: Steps:
[QC Short Description]
Error in Require error message

[QC Description]
In some conditions the automatically generated message for Require is not correct.
QC Entry 80312

(RO6513)
If I have the following Require statement in my code: Require 0 <= No < _Pages.Count; The generated code is: Debug.Assert(((0 <= No) and (No < self._Pages.Count)), 'Vis.OptionsWindow.SelectPage(No: System.Int32) precondition (0 <= No <= _Pages.Count)'); In the error message, "<" has been replaced by "<=".
QC #: Date Reported: Area:
80353 12/14/2009 Compiler
Description: Steps:
[QC Short Description]
Compiler no more accepts set constants

[QC Description]
The compiler does no more accept set constants
QC Entry 80353

(RO6523)
Compile the following class definition: Type MyClass = Public Class Public Method DoSomething (MySet : Set Of 1..10); Empty; Method Test; End; Implementation Method MyClass.Test; Begin DoSomething ([1, 2]) End; error PE19: There is no overloaded method "DoSomething" with these parameters warning PH2: Best matching "Fivb.Vis.MyClass.DoSomething(MySet: set of 1 .. 10)" doesn't match on parameter 1, parameter is "<untyped inline array>" should be "set of 1 .. 10"
QC #: Date Reported: Area:
80424 12/16/2009 IDE\Dialogs
Description: Steps:
[QC Short Description]
MonoDevelop: The packages tab in the Edit References dialog should contain RemObjects assemblies

[QC Description]
The edit references dialog should contain RemObjects assemblies so that its easy to add them to projects.
QC Entry 80424

(RO6556)
1) In monodevelop create a new console application 2) From the project manager right click on the references node and select "Edit References" from the menu 3) Look at the packages view expected: RemObjects assemblies should be listed. For example the Cirrus assemblies actual: Only mono assemblies are listed
QC #: Date Reported: Area:
80531 12/20/2009 IDE
Description: Steps:
[QC Short Description]
The Monobjc template for OSX doesn't generate the correct app filename

[QC Description]
When building the application the resulting app file is always %PROJECTNAME%.app
QC Entry 80531

(RO6555)
1) In visual studio create a new Monobjc Application(MacOS X) project 2) Build the project 3) Open a dos prompt and go to the projects bin\debug directory expected: On windows a folder should be created with the name Projectname.app ie If monobcapplication is the project name, monobjcapplication.app is the folder name actual: the folder name is always %PROJECTNAME%.app note: Its probably related but %PROJECTNAME% also appears as filename in the .app folder as well
QC #: Date Reported: Area:
80626 12/23/2009 Suggestion
Description: Steps:
[QC Short Description]
Main method does not have the command line arguments as a parameter.

[QC Description]
I would like to suggest to change the template of console and winforms apps.
Currently the program.pas file contains a Main method without parameters.
If you are new to .net and/or Prism you will have a hard time to find
out how to get to the command line arguments.
In C# the main method always has the array of String parameter.
So I think it would be a good idea to change the main method to this:

class method Main(args: array of String);
QC Entry 80626

(RO6551)
 
QC #: Date Reported: Area:
80628 12/24/2009 Compiler
Description: Steps:
[QC Short Description]
Cirrus : Internal error

[QC Description]
When working on an aspect I get an internal error.
QC Entry 80628

(RO6550)
- get the latest version of http://code.remobjects.com/p/prismaspects/ - open the included solution - open the file 'InvokeRequiredAttribute.pas' - uncomment the code at line #68 - try to compile the solution -> you will get this error: Error 11 (CE7) Internal error (Writing nil value in abstract output writer) C:\Program Files (x86)\MSBuild\RemObjects Software\Oxygene\RemObjects.Oxygene.targets 159 5 Prism.StandardAspects
QC #: Date Reported: Area:
80631 12/24/2009 Compiler
Description: Steps:
[QC Short Description]
Increment pointer does not work correctly anymore

[QC Description]
suppose p is a pointer.
inc(p) does not the same as the current public released compiler.

if I use
p := p + 1;

I get this in reflector:
Chrome: inc(p);
C# : p++;

That seems to be correct and the app does what we expect it todo.

but when I use this:

inc(p);

I get this in reflector:
Chrome: p := (p + sizeof(^Byte));
C#: p += sizeof(byte*);

I think it takes the size of a pointer to a byte and that is in my case 8 bytes...
I would have thought it would increment by one byte.
So maybe this should be like this:
Chrome: p := (p + sizeof(Byte));

QC Entry 80631

(RO6549)
 
QC #: Date Reported: Area:
80808 1/4/2010 Compiler
Description: Steps:
[QC Short Description]
Incorrect behavior in DateTime.Add method

[QC Description]
Using the DateTime.Add method, if both values used for the calculation are object properties, the metod produces an incorrect result.

If however one property value is copied to a variable before the calculation, the method works correctly.

--- Produces Incorrect result ---
incorrectResult := c.FromDate.Add( c.FromTime.TimeOfDay );

--- Produces Correct result ---
tempDate := c.FromDate;
correctResult := tempDate.Add( c.FromTime.TimeOfDay );

QC Entry 80808

(RO38199)
See the attached program example.
QC #: Date Reported: Area:
80842 1/5/2010 Compiler
Description: Steps:
[QC Short Description]
Internal Error while compiling generic class

[QC Description]
When compiling a generic class that calls an abstract class method, the compiler crashes.
QC Entry 80842

(RO6579)
Try to compile the following class definitions: Type MyAbstractClass = Public Abstract Class Public Class Method Create<TData> : TData; Abstract; Where TData Is MyAbstractClass; End; MyClass<TData> = Public Class Where TData Is MyAbstractClass; Public Method DoSomething; End; Implementation Method MyClass<TData>.DoSomething; Begin Var a := TData.Create; // Error is flagged here End; error CE7: Internal error (Exception during parsing implementation section)
QC #: Date Reported: Area:
80844 1/5/2010 Compiler
Description: Steps:
[QC Short Description]
Case values and enumeration type

[QC Description]
Can't use case values with enumeration types.
QC Entry 80844

(RO6578)
Try to compile the following class definition: Type MyEnum = Public Enum (One, Two); MyClass = Public Class Public Method DoSomething; End; Implementation Method MyClass.DoSomething; Begin Var a : MyEnum; Var s := Case a Of // Error is flagged here MyEnum.One : 'One'; MyEnum.Two : 'Two'; End; End; error CE14: Type mismatch
QC #: Date Reported: Area:
80951 1/7/2010 Compiler
Description: Steps:
[QC Short Description]
Detection of missing conditional define termination statement is missing

[QC Description]

If the {$ENDIF} coditional define termination statement is missing (deleted accidently), it's sometimes hard to find it (by misleading compiler error messages).
Delphi 2007.Net tells me "Unterminated conditional directive"
This would be helpful to have in Oxygene too.
QC Entry 80951

(RO37507)
namespace Unnamed; interface type Program = assembly static class public class method Main(args:array of string); end; implementation class method Program.Main(args:array of string); begin {$IFNDEF Test} {$ELSE} end; end.
QC #: Date Reported: Area:
81072 1/11/2010 Compiler
Description: Steps:
[QC Short Description]
Error CE15, Type mismatch error does not link to correct source line, links to .oxygene file instead.

[QC Description]
In a method that returns the wrong type, an error is generated. But the error doesn't to link to that method in the source. It links to the <OxygeneCompiler /> tag in the RemObjects.Oxygene.targets file. There is no indication where the error really occurred.
QC Entry 81072

(RO37551)
Project file attached to reproduce the problem. Open and compile. You should get error (CE15). You can see that the error entry links to teh RemObjects.Oxygene.targets file. But the type mismatch actually exists in Class1.pas. There is a comment there (in the only method in that unit) indicating where.
QC #: Date Reported: Area:
81229 1/16/2010 IDE\Code Editor
Description: Steps:
[QC Short Description]
In monodevelop on OSX code completion hangs the IDE

QC Entry 81229

(RO37484)
1) Open the supplied application 2) Open program.pas 3) Position cursor after the line //self.label.Text := instance.SomeMethod(self.text.Text); in the method ClickAction 4) Attempt to enter the commented out line using code completion i.e enter self, hit ctrl-space, select label, enter., hit ctrl-space select text, enter := etc expected: You should be able to enter the enter line using code completion actual: At some point selecting ctrl-space will hand the IDE, the spinning globe will appear and you wil have to kill the IDE using force quit
QC #: Date Reported: Area:
81258 1/18/2010 IDE\Code Editor
Description: Steps:
[QC Short Description]
if statement using chars fails with paste with c# as oxygene

QC Entry 81258

(RO37482)
1) Create a new console application 2) copy the following if ((c < '0') || (c < 'A' && c > '9') || (c > 'Z' && c < 'a') || (c > 'z')) { Console.WriteLine("if"); } else { Console.WriteLine("else"); } 3) Paste with c# as oxygene into the main method actual: if (((()) or (())) or (())) or (()) then begin Console.WriteLine(#105#102) end else begin Console.WriteLine(#101#108#115#101) end expected: if ((c < '0') or ((c < 'A') and (c > '9')) or ((c > 'Z') and (c < 'a')) or (c > 'z')) then begin Console.WriteLine('if'); end else begin Console.WriteLine('else'); end
QC #: Date Reported: Area:
81396 1/21/2010 Compiler
Description: Steps:
[QC Short Description]
Erroneous type mismatch error related to method type parameters.

[QC Description]
Not sure how to describe this one, other than to show the code that produces it and the errors it produces. It raises a primary Type mismatch error and 1 or more errors and warnings, which appear to be side-effects of the first error.

The type mismatch error indicates that type 1 (which is the correct type) cannot be assigned to TMODEL, which is a type parameter of the method in question, whereas TMODEL is not used ANYWHERE in the method. If you take the TMODEL type parameter off of the method signature, the method compiles with no other changes.

Errors:

Error 19 (CE15) Type mismatch, cannot assign System.Collections.Generic.List<TSource> to System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<TATTRIBUTE,System.Reflection.PropertyInfo>> C:\dev\trunk\WebServices\AuditService\Tap.Data\ModelRttiUnit.pas 478 6 Tap.Data


Error 20 (CE15) Type mismatch, cannot assign System.Collections.Generic.KeyValuePair<TATTRIBUTE,System.Reflection.PropertyInfo> to TMODEL C:\dev\trunk\WebServices\AuditService\Tap.Data\ModelRttiUnit.pas 477 24 Tap.Data


There are also 18 warnings.

(RO37466)
Create a new console application. Add a new class. Paste the following code block over the class1.pas code. You can remove the TMODEL type parameter from the method signature and teh method compile with no other changes. you can also change all references to TATTRIBUTE to System.Attribute and it will also compile. Of course, the idea is that I want to use TMODEL in the method, but I've removed all references to it to simplify the test case. namespace ConsoleApplication1; interface uses System, System.Collections.Generic, System.Linq, System.Reflection; type TProof = public class private public method GetPropertiesWithAttribute<TMODEL, TATTRIBUTE>(): List<PropertyInfo>; where TATTRIBUTE is System.Attribute; // This prototype works just fine. //method GetPropertiesWithAttribute<TATTRIBUTE>(): List<PropertyInfo>; where TATTRIBUTE is System.Attribute; end; implementation method TProof.GetPropertiesWithAttribute<TMODEL, TATTRIBUTE>(): List<PropertyInfo>; // This prototype works just fine. //method TProof.GetPropertiesWithAttribute<TATTRIBUTE>(): List<PropertyInfo>; var pairs: List<KeyValuePair<TATTRIBUTE, System.Reflection.PropertyInfo>>; lstProperties: List<System.Reflection.PropertyInfo>; begin result := new List<PropertyInfo>; lstProperties := typeof(List<string>).GetProperties().ToList(); pairs := lstProperties .SelectMany(p -> p.GetCustomAttributes(true) .Cast<TATTRIBUTE>() .Select(a -> new KeyValuePair<TATTRIBUTE, System.Reflection.PropertyInfo>(a, p))) .ToList(); end; end.
QC #: Date Reported: Area:
81460 1/24/2010 Compiler
Description: Steps:
[QC Short Description]
Integer addition with dynamics

[QC Description]
I try to compile the following code


var d : dynamic := 5;

var x := d + 10;
Console.WriteLine(x.ToString);


I get this error:
Error 1 (PE175) Unbekannter Typ "Microsoft.CSharp.RuntimeBinder.CSharpConvertBinder"

Pointing to the line where the integer is added to the dynamic.
QC Entry 81460


(RO37511)
 
QC #: Date Reported: Area:
81591 1/28/2010 Compiler
Description: Steps:
[QC Short Description]
No matching overload found for nested method.

[QC Description]
An inner (nested) method cannot be called. The compiler reports that no matching overload was found. The parameters are correct and should match. Of course, there need be only one method, no overloads.

The exact error message:

(PE19) There is no overloaded method "LoadSingleModelInner" with 2 parameters


When that same method is moved to the class level, it works fine.
QC Entry 81591

(RO37556)
Create a new console application. Name it QCTest. Paste this over program.pas. Build-all and then note the error. namespace QCTest; interface uses System.Linq; type ConsoleApp = class public class method Main; method LoadModel<TMODEL>(aId: object; aDeepLoad: Boolean): TMODEL; where TMODEL is class; method LoadSingleModelOuter<TMODEL>(aId: object; aDeepLoad: Boolean): TMODEL; end; implementation class method ConsoleApp.Main; begin (new ConsoleApp).LoadModel<System.Object>(0, true); end; method ConsoleApp.LoadModel<TMODEL>(aId: object; aDeepLoad: Boolean): TMODEL; method LoadSingleModelInner<TMODEL>(aId: object; aDeepLoad: Boolean): TMODEL; begin console.WriteLine('Executed LoadSingleModelInner'); end; begin // This line produces this error: // (PE19) There is no overloaded method "LoadSingleModelInner" with 2 parameters LoadSingleModelInner<TMODEL>(aId, aDeepLoad); // This works fine, and its definition is a modified // copy / paste of the LoadSingleModelInner definition. LoadSingleModelOuter<TMODEL>(aId, aDeepLoad); console.ReadLine(); end; method ConsoleApp.LoadSingleModelOuter<TMODEL>(aId: object; aDeepLoad: Boolean): TMODEL; begin console.WriteLine('Executed LoadSignleModelOuter'); end; end.
QC #: Date Reported: Area:
81622 1/29/2010 Compiler
Description: Steps:
[QC Short Description]
Building Mac application copies unnecessary XML files

[QC Description]
When building a Monobjc application for Mac OS X, not only do the Monobjc DLLs get copied to the Resoources folder of the app bundle, the matching XML files also get copied.

This increases the size of the deployed bundle by almost 8MB.

These files are totally unnecessary to running the application.
QC Entry 81622

(RO37611)
1. Create Monobjc (Mac OS X) application 2. Build application 3. Check size of app bundle, it will be around 10MB when it need only be around 2MB
QC #: Date Reported: Area:
81766 2/3/2010 Compiler
Description: Steps:
[QC Short Description]
No range checing on static arrays

QC Entry 81766

(RO37665)
- create a new console app. - replace the main method by this: class method ConsoleApp.Main(args: array of string); begin var test: Array[0..3] of String; test[0] := 'test'; test[10] := 'test'; end; This compiles but when you run it it will give a IndexOutOfBoundsException. Because 'test' is a static array I guess the compiler should check for this during compilation...
QC #: Date Reported: Area:
81913 2/7/2010 Compiler
Description: Steps:
[QC Short Description]
Sets do not operate properly in recent builds

[QC Description]
Operator + can not be perfomed in recent build
QC Entry 81913

(RO37716)
type MySet = set of ( A, B ) ; method MainForm.MainForm_Load(sender: System.Object; e: System.EventArgs); var test : MySet ; begin test := [] ; // OK test := [MySet.A] ; // OK test := test + [ MySet.A ] ; // Index was outside the bounds of the array. end; Message="Index was outside the bounds of the array." Source="WindowsApplication5" StackTrace: at <PublicImplementationDetails>.Set`1.op_Addition(Set`1 a, Set`1 b)
QC #: Date Reported: Area:
81947 2/8/2010 IDE\VS Integration
Description: Steps:
[QC Short Description]
VS2010 - Project properties are not accessible

[QC Description]
When you try to view the project properties VS2010 will crash.
QC Entry 81947

(RO37745)
 
QC #: Date Reported: Area:
81981 2/9/2010 Compiler
Description: Steps:
[QC Short Description]
Compiler still expects System.Threading.dll in .NET 4.0

[QC Description]
When creating a .NET 4.0 project and wanting to use one of the multi-threading features (like the parallel-loop), the compiler still expects a System.Threading.dll to be in the list of references.

This assembly does no longer exist in .NET 4.0, the System.Threading namespace now can be found in the mscorlib and System.Core.dll.
QC Entry 81981

(RO37775)
- Create a new .NET 4.0 console application - Use a parallel loop inside - Get the following error: Error 1 (PE250) "parallel"-Feature benötigen die Parallel Extensions (System.Threading.dll) und die Linq-Bibliotheken (System.Core.dll) (German for: "parallel"-Feature requires Parallel Extensions (System.Threading.dll) and the Linq Libraries (System.Core.dll))
QC #: Date Reported: Area:
81983 2/9/2010 Compiler
Description: Steps:
[QC Short Description]
Wrong compiler error in parallel loop in anonymous method

[QC Description]
In a parallel loop which is used in an anonymous method, the compiler can give error messages that make no sense.
QC Entry 81983

(RO37774)
- Create a new ConsoleApplication (.NET 3.5) - Add the System.Threading.dll from ParallelFX - Add the following code to the main method: var Points : Func<Double, Array of Double> := method(z : Double) : array of Double; begin var thisR := 42.0; result := new Double[100]; var dAlpha := 2 * Math.PI / result.Length; for parallel i : Integer := 0 to result.Length-1 do begin var alpha := i * dAlpha; result[i] := Math.Sin(alpha)*thisR; end; end; - The compiler will give the following errors, the first error referrs to the line "var alpha := i * dAlpha;", which does not make any sense.: Error 1 (CE16) Operator "*" cannot be applied to operands of type "array of System.String" and "System.Double" D:\My Dropbox\Programmierung\ConsoleApplication17\ConsoleApplication17\Program.pas 30 20 ConsoleApplication17 Error 2 (CE15) Type mismatch, cannot assign array of System.String to ordinal type C:\Program Files (x86)\MSBuild\RemObjects Software\Oxygene\RemObjects.Oxygene.targets 165 5 ConsoleApplication17 - Now use a "normal" method instead of the anonymous method: class method ConsoleApp.Foo(z : Double) : Array of Double; begin var thisR := 42.0; result := new Double[100]; var dAlpha := 2 * Math.PI / result.Length; for parallel i : Integer := 0 to result.Length-1 do begin var alpha := i * dAlpha; result[i] := Math.Sin(alpha)*thisR; end; end; - This gives the error: Error 1 (PE141) Method does not have a result D:\My Dropbox\Programmierung\ConsoleApplication17\ConsoleApplication17\Program.pas 36 7 ConsoleApplication17 Which makes much more sense in a parallel-loop.
QC #: Date Reported: Area:
82016 2/10/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
VS2010 project does not work with an other framework then 4.0

QC Entry 82016

(RO38113)
- Open VS2010 - Create a new Winforms app using the 3.5 framework. - compile the app --> The solution will not build error: Error 1 (MSB3454) Tracker.exe is required to correctly incrementally generate resources in some circumstances, such as when building on a 64-bit OS using 32-bit MSBuild. This build requires Tracker.exe, but it could not be found. The task is looking for Tracker.exe beneath the InstallationFolder value of the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A. To solve the problem, either: 1) Install the Microsoft Windows SDK v7.0A or later. 2) Install Microsoft Visual Studio 2010. 3) Manually set the above registry key to the correct location. Alternatively, you can turn off incremental resource generation by setting the "TrackFileAccess" property to "false". C:\Windows\Microsoft.NET\Framework\v4.0.30128\Microsoft.Common.targets 1835 9 WindowsApplication3
QC #: Date Reported: Area:
82027 2/10/2010 Compiler
Description: Steps:
[QC Short Description]
Nullable types and extension methods

[QC Description]
When defining am extension method on a Nullable type and the same type, the compiler always use the non-Nullable implementation.
QC Entry 82027

(RO37813)
1. Create a new Console Application. 2. Paste the following code to Program.pas: namespace ConsoleApplication1; interface uses System.Runtime.CompilerServices, System.Xml.Linq; type [Extension] DateTimeExtension = Public Static Class Public [Extension] Method ToXAttribute (DateTime : DateTime; Name : String) : XAttribute; End; [Extension] NullableDateTimeExtension = Public Static Class Public [Extension] Method ToXAttribute (DateTime : Nullable DateTime; Name : String) : XAttribute; End; ConsoleApp = class public class method Main(args: array of string); end; implementation Method DateTimeExtension.ToXAttribute (DateTime : DateTime; Name : String) : XAttribute; Begin Exit New XAttribute (Name, DateTime.ToString ('u')) End; Method NullableDateTimeExtension.ToXAttribute (DateTime : Nullable DateTime; Name : String) : XAttribute; Begin Exit IIf (Assigned (DateTime), New XAttribute (Name, DateTime.ToString ('u')), Nil) End; class method ConsoleApp.Main(args: array of string); begin Var DT : Nullable DateTime; Var Attr := DT.ToXAttribute ('Test') end; end. 3. Compile. 4. Look at the output in Reflector, the code of Main is: class method ConsoleApp.Main(args: array of String); begin var DT: &Nullable<DateTime>; var Attr: XAttribute := DateTimeExtension.ToXAttribute(DT.Value, 'Test') end; You can see that we take the value of DT and call the non-Nullable extension.
QC #: Date Reported: Area:
82065 2/11/2010 Compiler
Description: Steps:
[QC Short Description]
Casting constants

[QC Description]
Casting constant values does not work correctly.
QC Entry 82065

(RO37966)
Simple example: var foo := Integer(1.2); ==> (PE149) Invalid cast Results from operations between constants: var foo := Integer(2.0 * Math.PI); ==> (PE149) Invalid cast WORKS when a variable is involved: var one := 1.0; var foo := Integer(one * 2.0 * Math.PI);
QC #: Date Reported: Area:
82102 2/12/2010 Database
Description: Steps:
[QC Short Description]
Help/About gets errors from FeaturePack

[QC Description]
After installing Prism with VS2010 shell, selecting help about gets 2 error dialogs before the main display appears. Independently verified by Victor Saveanu.
QC Entry 82102

(RO39616) (should not have been assigned)
Install the Iso containing Prism and the VS2010 beta shell. Open the IDE ans select Help/About. Observe Error dialog: --------------------------- Microsoft Visual Studio --------------------------- The 'CodeGear.VsDdex.Package.BlackfishSQLDataPackage, CodeGear.VsDdex.Blackfish, Version=14.0.0.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b' package did not load correctly.The problem may have been caused by a configuration change or by the installation of another extension. You can get more information by running the application together with the /log parameter on the command line, and then examining the file 'C:\Users\Ken\AppData\Roaming\Microsoft\VisualStudio\10.0\ActivityLog.xml'.Continue to show this error message? --------------------------- Yes No --------------------------- Select Yes, Observer Error dialog: --------------------------- Microsoft Visual Studio --------------------------- The 'CodeGear.VsDdex.Package.dbExpressDataPackage, CodeGear.VsDdex.Dbx, Version=14.0.0.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b' package did not load correctly.The problem may have been caused by a configuration change or by the installation of another extension. You can get more information by running the application together with the /log parameter on the command line, and then examining the file 'C:\Users\Ken\AppData\Roaming\Microsoft\VisualStudio\10.0\ActivityLog.xml'.Continue to show this error message? --------------------------- Yes No --------------------------- Select Yes, Observer About dialog does not show Blackfish or dbexpress information.
QC #: Date Reported: Area:
82115 2/13/2010 Compiler
Description: Steps:
[QC Short Description]
Calculation using an int32 and a Decimal causes illegal code generation

QC Entry 82115

(RO38112)
- Create a new console app - Replace the main method by this: class method ConsoleApp.Main(args: array of string); begin var someDecimal: Decimal; var someInt: Int32 := 12; var indx := someInt + (8 * (someDecimal - 1)); end; - compile and run. --> you get this error: System.InvalidProgramException was unhandled Message: Common Language Runtime detected an invalid program.
QC #: Date Reported: Area:
82119 2/13/2010 IDE\Code Editor
Description: Steps:
[QC Short Description]
named parameters with import as C#

[QC Description]
when importing C# using named parameters square brackets are added to the Delphi Prism code
QC Entry 82119

(RO38111)
1) Open the supplied example solution 2) Right click on ImportFromCSharpConsoleApplication in the solution explorer and select add, import C#. From the CSharpConsoleApplication select NamedParmaters.cs expected: resulting Prism code should compile actual: CSharp var instance = new NamedParameters() { SomeOtherProperty = "", SomeProperty = "" }; becomes var instance := new NamedParameters([SomeOtherProperty := '', SomeProperty := '' ]) [] should not be there
QC #: Date Reported: Area:
82129 2/14/2010 Compiler
Description: Steps:
[QC Short Description]
CE15 Type mismatch error upon compiling numeric sets

[QC Description]
Code with numeric sets like

TMySet = set of 5 ;

Does accept operations like:

myset := [0,5] ;

Due to comiler error:

(CE15) Type mismatch, cannot assign inline array to set of 0 .. 5
QC Entry 82129

(RO38110)
type TMySet = set of 5 ; method MainForm.DoTest; var myset : TMySet ; val : Integer ; begin myset := [0,5] ; <---- THIS LINE DOES NOT COMPILE val := 0 ; myset := [val] ; <---- THIS LINE DOES NOT COMPILE if 0 in myset then MessageBox.Show( 'OK: 0' ) else MessageBox.Show( 'ERR: 0' ) ; if 3 in myset then MessageBox.Show( 'ERR: 3 ' ) else MessageBox.Show( 'OK: 3' ) ; if 5 in myset then MessageBox.Show( 'OK: 5' ) else MessageBox.Show( 'ERR: 5' ) ; myset := myset + [3] ; if 3 in myset then MessageBox.Show( 'OK: 3' ) else MessageBox.Show( 'ERR: 3' ) ; myset := myset - [0] ; if 0 in myset then MessageBox.Show( 'ERR: 0' ) else MessageBox.Show( 'OK: 0' ) ; end;
QC #: Date Reported: Area:
82144 2/15/2010 Compiler
Description: Steps:
[QC Short Description]
Stack overflow in compiler

[QC Description]
When making some error coding, the compiler crashes with stack overflow.
QC Entry 82144

(RO38109)
Try to compile the following class declaration: Type MyClass = Public Class Public Method Test <TData>; Where TData Is TData; // Error here End; {MyClass} Result: Window with MSBuild.exe has stopped working. Details: Description: Stopped working Problem signature: Problem Event Name: CLR20r3 Problem Signature 01: msbuild.exe Problem Signature 02: 3.5.30729.4926 Problem Signature 03: 4a174761 Problem Signature 04: RemObjects.Oxygene.Compiler Problem Signature 05: 3.0.22.709 Problem Signature 06: 4b745406 Problem Signature 07: f31 Problem Signature 08: 0 Problem Signature 09: System.StackOverflowException OS Version: 6.1.7600.2.0.0.256.1 Locale ID: 4108 Read our privacy statement online: http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409 If the online privacy statement is not available, please read our privacy statement offline: C:\Windows\system32\en-US\erofflps.txt
QC #: Date Reported: Area:
82221 2/17/2010 Compiler
Description: Steps:
[QC Short Description]
Default(Boolean) is True, not False

[QC Description]
Default(Boolean) is True, not False

Wiki says it should be false. In C# it is false.
QC Entry 82221

(RO38139)
Console.WriteLine(Default(Boolean)); Output says True.
QC #: Date Reported: Area:
82252 2/18/2010 Compiler
Description: Steps:
[QC Short Description]
Wrong behaviour when passing a set of chars to function

[QC Description]
A function like this

function CharInSet (
const _chr : Char ;
const _set : set of Char
) : Boolean ;
begin
Result := _chr in _set ;
end ;

returns False for some chars that are in "_set".
QC Entry 82252

(RO38155)
class function TestClass.CharInSet ( const _chr : Char ; const _set : set of Char ) : Boolean ; begin Result := _chr in _set ; end ; class procedure TestClass.Check ; var boo : Boolean ; i : Integer ; str : String ; begin str := '' ; // 'A' = Char( 65 ) .. 'Z' = Char( 90 ) for i := 65 to 90 do begin boo := TestClass.CharInSet( Char( i ), [ 'A' .. 'Z' ] ) ; if not boo then str := str + Char( i ) ; end ; Console.WriteLine( str ) ; // here str is 'PQRSTUVW' str := '' ; // 'a' = Char( 97 ) .. 'z' = Char( 122 ) for i := 97 to 122 do begin boo := TestClass.CharInSet( Char( i ), [ 'a' .. 'z' ] ) ; if not boo then str := str + Char( i ) ; end ; Console.WriteLine( str ) ; // here str is 'pqrstuvw' end ;
QC #: Date Reported: Area:
82271 2/18/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
Unknown identifier: System.Windows.Markup.IComponentConnector

[QC Description]
Created a new Windows (WPF) - WPF Application project. Failed to build generated template.

QC Entry 82271

(RO38154)
Clean install of the full kit including VS2010 on Windows 7 32-bit machine. Installed .NET 4, rebooted, and installed again. The machine have never had VS on it before. File|New Project Select Delphi Prism, Windows (WPF), WPF Application Build Fails with Errors Error 1 (PE9) Unknown identifier "System.Windows.Markup.IComponentConnector" c:\users\foslar\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1\obj\Debug\Window1.g.i.pas 45 59 WindowsApplication1 Error 2 (PE9) Unknown identifier "System.Windows.Markup.IComponentConnector" c:\users\foslar\documents\visual studio 2010\Projects\WindowsApplication1\WindowsApplication1\obj\Debug\Window1.g.i.pas 53 155 WindowsApplication1
QC #: Date Reported: Area:
82287 2/19/2010 IDE\VS Integration
Description: Steps:
[QC Short Description]
There is no CodeDom provider defined for this language

[QC Description]
The message "There is no CodeDom provider defined for this language" appears when trying to drag a Common WPF controls button onto a Silverlight Application form.
QC Entry 82287

(RO38197)
Fresh install of Delphi Prism on Windows 7 32-bit, using installkit with embedded VS2010. Silverlight Developer and Silverlight SDK installed. Silverlight 4 installed. File|New Project Select Delphi Prism, Silverlight, Siliverlight Application Unselect webhosting (topmost checkbox in wizard) Build Build succeeds From left hand side Toolbox Drag a Common WPF controls Button onto the design surface The message "There is no CodeDom provider defined for this language" appears, and the control is not added to the designsurface. Any further attemt to drag a the same control on to the surface fails, as it displays as a no-drop area. Pick another control. such as a checkbox, and drag it on to the design surface. The same error as described above occurs, and the same no-drop status is in effect for the checkbox. Any attemt to drop any of these controls will now be refused. Update: Problem persists after upgrading to Build 713
QC #: Date Reported: Area:
82298 2/19/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
General problems observed

QC Entry 82298

(RO38196)
VS2010 1. Tools/Options/Projects and Solutions/Delphi Prism shows "An error occured loading this property page" 2. Any Project/Properties/Application tab just has a list of "b.e"'s in the Target Framework Dropdown 3. WebApplication Project/Properties/Package/Publish Web & Package/Publish SQL tabs both show "An error occurred trying to load the page. Exception has been thrown by the target of an invocation."
QC #: Date Reported: Area:
82309 2/19/2010 IDE\Code Editor
Description: Steps:
[QC Short Description]
No Smart-Tags in VS2010

[QC Description]
Smart-Tags, e.g. for implementing interface members, are not showing in VS2010.
QC Entry 82309

(RO38378)

- Create a project - Add a class and let it implement "INotifyPropertyChanged" - No smart-tag for implementing the interface's members is displayed
QC #: Date Reported: Area:
82328 2/20/2010 IDE\Code Editor
Description: Steps:
[QC Short Description]
"extension" missing from IntelliSense

[QC Description]
The keyword "extension" is missing from IntelliSense
QC Entry 82328

(RO38192)
- Create a new code file inside a project - Start typing in the interface section - No "extension" in the IntelliSense
QC #: Date Reported: Area:
82329 2/20/2010 IDE\Code Editor
Description: Steps:
[QC Short Description]
"for" and "yield" missing from IntelliSense with for-expression

[QC Description]
When trying to create a for-loop as expression, the "for" and "yield" keywords are missing from IntelliSense
QC Entry 82329

(RO38191)

- Create a new ConsoleApp - In the Main-Method try to type the following var squares := for i : Integer := 0 to 5 yield i*i*; Neither "for" nor "yield" will be in IntelliSense.
QC #: Date Reported: Area:
82334 2/20/2010 Compiler
Description: Steps:
[QC Short Description]
Ambigious call to method

[QC Description]
I'm trying to use Fluent.NHiberate but running into compiler errors.

The error is in StoreMap.pas from Example.FirstProject.

A C# version is in Example.FirstProject.Mappings and compiles without errors

See steps
QC Entry 82334

(RO38189)
1) Open solution and build expected: Solution should compile without errors actual: Compiler error is produced Error 1 (PE98) Ambiguous call to method "HasMany<TChild>(expression: System.Linq.Expressions.Expression<System.Func<Example.FirstProject.Entities.Store,sequence of Example.FirstProject.Entities.Employee>>): FluentNHibernate.Mapping.OneToManyPart<TChild> ; HasMany<TKey,TChild>(expression: System.Linq.Expressions.Expression<System.Func<Example.FirstProject.Entities.Store,System.Collections.Generic.IDictionary<TKey,TChild>>>): FluentNHibernate.Mapping.OneToManyPart<TChild>" C:\develop\Example.FirstProject\Example.FirstProject\Mappings\StoreMap.pas 31 3 Example.FirstProject
QC #: Date Reported: Area:
82370 2/22/2010 IDE\VS Integration
Description: Steps:
[QC Short Description]
VS2010 - WPF designer does not work

QC Entry 82370

(RO38245)
- create a new WPF app in VS2010 - put a button on the form --> you get this error: --------------------------- Error Dialog --------------------------- There is no CodeDom provider defined for the language. "There is no CodeDom provider defined for the language." --------------------------- OK ---------------------------
QC #: Date Reported: Area:
82386 2/22/2010 Compiler
Description: Steps:
[QC Short Description]
Compatible types on assignment of open arrays but not when casting.

[QC Description]
When casting open arrays, arrays and sequences raise a type mismatch. However, there is no error when assigning them to a declared VAR of the same type.


// Given this...
method ConsoleApp.Method1(): List<System.Type>;
var
arr: array of System.Type;
seq: sequence of System.Type;

// All of these work
arr := array of System.Type([typeof(PropertyInfo), typeof(System.Attribute)]);

seq := sequence of System.Type(arr);

result := arr.ToList();

result := seq.ToList();

// All of these do not work.
seq := sequence of System.Type(array of System.Type([typeof(PropertyInfo), typeof(System.Attribute)]));

var x := sequence of System.Type(array of System.Type([typeof(PropertyInfo), typeof(System.Attribute)]));

result := array of System.Type([typeof(PropertyInfo), typeof(System.Attribute)]).ToList();

result := sequence of System.Type([typeof(PropertyInfo), typeof(System.Attribute)]).ToList();



See attachment for code files.
QC Entry 82386

(RO38244)
Open attached solution files in Prism (VS 2008). Pick and choose which scenarios to use by commenting and uncommenting the lines of each block in the GetTypesList method. Compile each. Any reasonable assignment to arr or seq variables is successful and both of those expose a .ToList() method which also works. If casting is used instead of assignment to one of these variables, compiler errors give various type mismatch errors.
QC #: Date Reported: Area:
82387 2/22/2010 Compiler
Description: Steps:
[QC Short Description]
Extension method for generic type

[QC Description]
When trying to extend a generic type, the copmiler produces several errors.
QC Entry 82387

(RO38243)
I have this extension method in "old" syntax: type [Extension] EnumExtender = public static class assembly [Extension] method ToXmlString<T>(value : T) : String; where T is &Enum; end; This is supposed to be translated into: extension method T.ToXmlString<T>: string; where T is &Enum; (* ...*) implementation extension method T.ToXmlString<T>: string; begin end; But then I get the following erros: - Red error marker in the editor at the end of the line: "Period (.) expected" - When compiling, it complains in the implementation section, that "T" is an unknown identifier, additionally it expects "end" after ": String" in the implementation section
QC #: Date Reported: Area:
82537 2/28/2010 Compiler
Description: Steps:
[QC Short Description]
class alias and nested classes doesnt work

[QC Description]
i'm trying to do the following:

type
MyClass = class
end;

_CLASSAlias = MyClass;

NestedClass nested in _CLASSAlias = class
end;

The compiler states (PE214) that the nested class has to be in the same assembly as the class where the class should be nested in.
QC Entry 82537

(RO38377)
Use the following statements: type MyClass = class end; _CLASSAlias = MyClass; NestedClass nested in _CLASSAlias = class end;
QC #: Date Reported: Area:
82546 2/28/2010 Compiler
Description: Steps:
[QC Short Description]
Comparing char and element of char of array fail under some circumstances

[QC Description]
Problem exists only on VS2010 and seems to be .NET 4 releated:
QC Entry 82546

(RO38335)
method lowTest( _c : Char; _ar : array of Char ) ; begin if _c = _ar[0] then MessageBox.Show( 'OK' ) else MessageBox.Show( 'ERR' ) ; end; method DoTest ; begin lowTest( #65533, [ #65533 ] ) ; // BAD lowTest( #65 , [ #65 ] ) ; // OK end;
QC #: Date Reported: Area:
82572 3/1/2010 Compiler
Description: Steps:
[QC Short Description]
Runtime exception: Common Language Runtime detected an invalid program.

[QC Description]
Related report: #82574

InvalidProgram exception is raised when calling a test method I was working on for another bug report (See related report 82574).

Attached the entire solution, binaries included, since this seems to be related to the .EXE.

This error was not present until I added 2 specific lines to the TestUnit.JITInternalLimitTest (lines 30-31):

e[0] := 1.0;
a := e;


As expected, removing those two lines seemed to fix this error.
QC Entry 82572

(RO38376)
Run the attached program from the Visual Studio 2008 IDE.
QC #: Date Reported: Area:
82574 3/1/2010 Compiler
Description: Steps:
[QC Short Description]
JIT internal limit error when calling a method containing decimal array.

[QC Description]
I encounter a runtime exception, "InvalidProgramException" with message "JIT Compiler encountered an internal limitation".

This problem seems to be specific to the System.Decimal type.

The following do NOT cause this:

- Assignment of a fixed decimal array variable to an open decimal array variable.

var e: array [0..0] of decimal;
a: array of decimal;
begin
a := e;



- Assignment of a literal float (1.0) to a decimal variable.

var d: Decimal;
begin
d := 1.0;

The following WILL cause this.

- Assignment of a value to an element in a fixed decimal array.

var e: Array [0..0] of decimal;
begin
e[0] := 1.0;

- Decimal open array assignments to an array of decimal variable.

var
a: array of decimal;
b: array of integer;
c: array of integer;
d: Decimal;
e: Array [0..0] of decimal;
begin
a := array of Decimal([Decimal(1.0)]);
a := array of Decimal([d]);
a := [d];



QC Entry 82574

(RO38375)
Load and build the attached solution. When run, you will encounter the error. Note the comments in the TestUnit class. These instruct you about what I've found when fiddling with each line in that method. Feel free to play around.
QC #: Date Reported: Area:
82575 3/1/2010 Compiler
Description: Steps:
[QC Short Description]
What should be the value of default(char)?

[QC Description]
Currently, the value of default(char) is #32 (a blank). In C#, the value is #0. If it were a field in an object/record, I assume it would be #0 as well (EVERYTHING is zero). So, shouldn't default(char) have the value #0??
QC Entry 82575

(RO38374)
Console.WriteLine(Ord(default(Char))); Output is 32
QC #: Date Reported: Area:
82581 3/1/2010 Debugger
Description: Steps:
[QC Short Description]
Debugger incorrectly evaluates x <> nil.

[QC Description]
When evaluating an expression at runtime, the debugger evalutes x <> nil as FALSE, when in fact it is true. However, the compiler correctly evaluates the expression, and an assignment thereof is reflected in the same debugging session when evaluating the variable to which it was assigned.

I've attached a sample application with some screen shots of the debugger. The erroneous value is consistent, being seen in WATCH, QUICKWATCH, and when highlighting and hovering the code editor with the mouse.
QC Entry 82581

(RO38373)
Open, build and run the attached solution with a breakpoint on lines 36 and / or 38. Evaluate the expression "keyAttr <> nil" in any debugger tool.
QC #: Date Reported: Area:
82587 3/1/2010 Compiler
Description: Steps:
[QC Short Description]
(CE7) Internal error (Exception during parsing...) when calling a generic method without type parameters.

[QC Description]
Given a method with a type parameter:

method Method1<T>;

A call to this method which does not provide the required type parameter <T>:

class2.Method1;

Raises two compiler errors. The first is as expected.

Error 1 (PE240) Generic parameter "T" for this method call could not fully be resolved c:\Work\QCTest2\QCTest2\Class1.pas 35 10 QCTest2



But the second is unexpected and may need to be fixed.


Error 2 (CE7) Internal error (Exception during parsing implementation section) c:\Work\QCTest2\QCTest2\Class1.pas 35 17 QCTest2


QC Entry 82587

(RO38372)
Create a new console application (name="QCTest2"). Add two classes (Class1 and Class2). Add the methods as shown in description. I've attached a broken solution with these classes.
QC #: Date Reported: Area:
82623 3/2/2010 Compiler
Description: Steps:
[QC Short Description]
for-loop-expression yields CE7-error

[QC Description]
In some cases, a for-loop used as expression can yield the error: "(CE7) Internal error (Exception during parsing implementation section)"
QC Entry 82623

(RO38443)
Create a new project and reference the cirrus-assembly. Then try to compile the following code. namespace NotifyAspect; interface uses System.Linq, RemObjects.Oxygene.Cirrus, RemObjects.Oxygene.Cirrus.Statements, RemObjects.Oxygene.Cirrus.Values; type DontNotifyInit = public class(Attribute, ITypeImplementationDecorator) private fFieldName : String; protected public constructor(aFieldName : String); method HandleImplementation(Services: IServices; aType: ITypeDefinition); end; implementation method DontNotifyInit.HandleImplementation(Services: IServices; aType: ITypeDefinition); begin var propChangedEvents : Array of IEvent := aType.GetEvents('PropertyChanged'); if propChangedEvents.Length <> 1 then exit; var theEvent := propChangedEvents[0]; var args := (for i : Integer := 0 to theEvent.RaiseMethod.ParameterCount-1 yield theEvent.RaiseMethod.GetParameter(i).Type).ToArray; var modifiers := (for i : Integer := 0 to theEvent.RaiseMethod.ParameterCount-1 yield theEvent.RaiseMethod.GetParameter(i).Mode).ToArray; var raiseMethod := aType.GetMethod(theEvent.RaiseMethod.Name, args, modifiers); end; constructor DontNotifyInit(aFieldName : String); begin fFieldName := aFieldName; end; end.
QC #: Date Reported: Area:
82661 3/3/2010 Compiler
Description: Steps:
[QC Short Description]
The new extension method syntax doesn't allow generic collection types with namespaces

[QC Description]
When specifying extension methods of generic collections you can't use the fully qualified name for a type

This works

extension method List<Employee>.AnotherMethod;

but this doesn't

extension method List<ExtensionNamespace.Domain.Employee>.SomeMethod;
QC Entry 82661

(RO38459)
1) Open the supplied example 2) Build expected: Solution should build actual: compiler errors Error 1 Comma "," expected C:\develop\ExtensionNamespace\ExtensionNamespace\EmployeeExtension.pas 12 48 Error 2 Semicolon expected C:\develop\ExtensionNamespace\ExtensionNamespace\EmployeeExtension.pas 12 57 Error 3 Comma "," expected C:\develop\ExtensionNamespace\ExtensionNamespace\EmployeeExtension.pas 16 56 Error 4 Semicolon expected C:\develop\ExtensionNamespace\ExtensionNamespace\EmployeeExtension.pas 16 65 Error 5 "begin" expected C:\develop\ExtensionNamespace\ExtensionNamespace\EmployeeExtension.pas 16 65
QC #: Date Reported: Area:
82781 3/8/2010 Compiler
Description: Steps:
[QC Short Description]
Mono: AppDomain.CreateInstance creates in wrong AppDomain

[QC Description]
When calling AppDomain.CreateInstance in Mono the instance is created in the root domain and not in the just created one.
Similar C# code works fine.
This seems to be a follower to QC bug #74708 and
is basicly a Mono bug.
The reason is the IL call instance instruction instead of callvirt.
I guess you have decided to work around this Mono bug, so please do it again :-)

Interesting is that the known workaround with Interface casting (_AppDomain and IObjectHandle) isn't enough. Even the ShpwApp call must be interface casted.
QC Entry 82781

(RO38620)
As i cannot add attachments (nobody ever cares ?), this is the code for the Caller-App in Prism namespace Unnamed; interface type Loader = class public method LoadProxy; end; Program = assembly static class public class method Main(args:array of string); end; implementation uses System.Runtime.Remoting, Proxy; method Loader.LoadProxy; var pad:AppDomain; poh:ObjectHandle; myproxy:IProxy; begin pad:=AppDomain.CreateDomain('ProxyDomain'); poh:=pad.CreateInstance('Proxy','Proxy.IProxy'); myproxy:=IProxy(poh.Unwrap); myproxy.ShowApp; end; class method Program.Main(args:array of string); var l:Loader; begin l:= new Loader; l.LoadProxy; end; end. And this is the code of the Proxy-Assembly namespace Proxy { using System; using System.Windows.Forms; public class IProxy:MarshalByRefObject { public void ShowApp() { MessageBox.Show(AppDomain.CurrentDomain.FriendlyName); } } } Adding the C# code isn't possible here because of QC line number restrictions :-( The MessageBox output should be 'ProxyDomain' instead of 'unnamed'
QC #: Date Reported: Area:
82920 3/11/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
VS2010: .NET 4.0 references in 2.0-project and vice versa

[QC Description]
In a .NET 2.0 project when adding a reference to an assembly, both the .NET 2.0 and the .NET 4.0 version of a .NET assembly are listed in the dialog. Same is true for a .NET 4.0 project.
QC Entry 82920

(RO38721)
- On a system with both .NET 2.0 and .NET 4.0 installed: - Create a .NET 2.0 project - Right-click on reference, choose "Add reference" - Find e.g. "System.Drawing", there will be two versions in the list
QC #: Date Reported: Area:
82921 3/11/2010 Compiler
Description: Steps:
[QC Short Description]
"self" not correctly resolved when using lambda in anonymous method

[QC Description]
When creating an anonymous method and then inside this method creating a lambda expression and *then* using the keyword "self" in this lambda not only will not only lead to strange behaviour during debugging but to wrong compiler behaviour.
QC Entry 82921

(RO38720)
I have a constructor which looks like this: constructor Movie; begin fGenres := new DelegatedCollection<Genre>( method(g : Genre) : Int32; begin //remove result := MovieDatabase.Instance.MovieGenres.FindIndex(mg -> (mg.GenreId = g.Id) and (mg.MovieId = self.Id)); if result <> - 1 then MovieDatabase.Instance.MovieGenres.RemoveAt(result); end); end; This compiles, but even if MovieDatabase.Instance.MovieGenres contains a matching item, result will be -1. I saw, that when debugging and hovering over "self" to look into its content, it shows me some cryptic things like an "@self" member. So I tried this: constructor Movie; begin fGenres := new DelegatedCollection<Genre>( method(g : Genre) : Int32; begin //remove var m := self; result := MovieDatabase.Instance.MovieGenres.FindIndex(mg -> (mg.GenreId = g.Id) and (mg.MovieId = m.Id)); if result <> - 1 then MovieDatabase.Instance.MovieGenres.RemoveAt(result); end); end; I only introduced the dummy variable "m" and now it works as expected.
QC #: Date Reported: Area:
83069 3/16/2010 Other
Description: Steps:
[QC Short Description]
no codebehind code generated when dropping components on ASP.NET webform

QC Entry 83069

(RO38816)
1. Create new webapplication 2. drop button 3, double-click or use properties inspector to generate onclick event. (in aspx file onclick is added in te form-code) but not in the codebehind .pas file
QC #: Date Reported: Area:
83190 3/20/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
VS2010: Oxfuscator not working

[QC Description]
Oxfuscator does not work at all under VS2010. I see some problems, one is that the assembly I want to be obfuscated remains readable.

See steps for more info.
QC Entry 83190

(RO39033)
- Create a new solution with a new WinForms-project in it - Add an Oxfuscator-project Problem 1: - Try to add the WinForms-project to the Oxfuscator's "Assemblies to Obfuscate": Clicking "Add" works fine, but when clicking "OK" to close the dialog I get an error message and the dialog does not close. Error message is: Wrong parameter. (Exception from HRESULT: 0x80070057 (E_INVALIDARG)) (Translated by me) - I close the dialog by hitting "Cancel". The WinForms-project does not show up in the assemblies to obfuscate. I save the whole soultion, close it and open it again -> the project is in the assemblies to obfuscate. Problem 2: - I add an event handler for the Form's load event and put this code in there: var someReadableName := 'foo'; MessageBox.Show(someReadableName); - I build the Oxfuscator project and then open the assembly of the Winforms project in Reflector. I still can read the name of the variable. Problem 3: - I want to view the properties of the Oxfuscator project, the "Exclusion" tab is not shown but only an error message "An error occurred trying"
QC #: Date Reported: Area:
83273 3/23/2010 Install
Description: Steps:
[QC Short Description]
VS2010 Installer fails without explanation when VS Shell installation fails

[QC Description]
Problem exists in .715, .719. I believe it likely exists in .721 as well.

I was running Windows XP SP2. I could not install install Prism beta from the Visual Studio 2010 ISO. The installer would walk through the installation options, then the installation would begin. A few seconds (maybe 5-10) later, it would display a message box stating something similar to "The IDE could not be installed. The installation will be canceled."

I tried changing installation components. I get the error no matter what I select. I tried selecting just Visual Studio 2008 (no subcomponents) and just Visual Studio 2010 (no subcomponents). The result is the same.

Per Victor Saveanu's suggestion, I installed just the VS2010 shell from the ISO. That installer ran and informed me that Service Pack 3 for Windows XP was required. I downloaded and installed Service Pack 3. This solved the installation problem.

Having encountered this problem, I believe it is insufficient to simply tell me that the IDE could not be installed. I need to be told why. It took 2 weeks and a forum discussion with the beta team to figure it out.
QC Entry 83273

(RO40417)
Install Prism for VS2010 on Windows XP without SP3.
QC #: Date Reported: Area:
83302 3/24/2010 Compiler
Description: Steps:
[QC Short Description]
inc() /dec() not usable within a lambda expression

[QC Description]
I have a lambda expression which contains an inc -- compiler doesn't recognize inc. Not surprisingly, it doesn't recognize dec either.
QC Entry 83302

(RO39030)
method TimedTask.Start(aContinueOnError: Boolean); begin var count := 0; Timer := new Timer(state -> begin try Action(false); count := count + 1; <------------- was inc(count); -- gives "Unknown identifier inc" if (Iterations > 0) and (count >= Iterations) then Stop; except on ex: System.Exception do begin var exc: System.Exception := ex; SetExceptionKludge(exc); if not aContinueOnError then Stop; end; end; end, nil, DueTime, Interval); end;
QC #: Date Reported: Area:
83303 3/24/2010 Compiler
Description: Steps:
[QC Short Description]
Type Compatibility Issue in Lambda

[QC Description]
Within a lambda, I tried to do a simple assignment,
Exception := ex;
where Exception is a property of the class (of type Exception) and ex was of type Exception. Got error that types weren't the same "Exception <> System.Exception". So, made all of them System.Exception. Got error that System.Exception <> System.Exception....
Wrote a method, SetExceptionKludge to do the actual setting of Exception to ex. Same problem. Finally added the line
var exc: System.Exception := ex; NOW it compiles! But still can't say Exception := exc.
QC Entry 83303

(RO39029)
method TimedTask.Start(aContinueOnError: Boolean); begin var count := 0; Timer := new Timer(state -> begin try Action(false); count := count + 1; if (Iterations > 0) and (count >= Iterations) then Stop; except on ex: System.Exception do begin var exc: System.Exception := ex; <----- what I had was Exception := ex; SetExceptionKludge(exc); if not aContinueOnError then Stop; end; end; end, nil, DueTime, Interval); end;
QC #: Date Reported: Area:
83321 3/25/2010 Suggestion
Description: Steps:
[QC Short Description]
Cirrus: please provide access to $Define

[QC Description]
It would be nice, in Cirrus, to have the ability to check the existence of $Define at the point where the aspect is applied.
In this case, for example, an aspect can change the generated code depending on the target (Silverlight or WPF), or can even be used to a functionality to a Silverlight application that exists in WPF.
QC Entry 83321

(RO39169)
 
QC #: Date Reported: Area:
83330 3/25/2010 Compiler
Description: Steps:
[QC Short Description]
Need Way to Mark Event NonSeriallized

[QC Description]
I wanted to mark an event field in a class as NonSerialized (the class has the Serializable attribute). In C#, you use

[field: NonSerialized]

but this syntax doesn't work in Prism (doesn't like field). I tried just [NonSerialized] but got the error message that ""NonSerializedAttribute" attribute is not allowed here."

This should be supported without having to explicitly define the backing field and marking it.
QC Entry 83330

(RO39167)
1) Define an event field withn a class that has the Serializable attribute. 2) Try to figure out how to mark the event as NonSerializable. 3) File this QC report
QC #: Date Reported: Area:
83418 3/28/2010 Suggestion
Description: Steps:
[QC Short Description]
[Cirrus] provide a way to create a new constant in Cirrus

[QC Description]
In Cirrus, there is no AddConstant method in ITypeDefinition, so there is no way to create a new constant.
QC Entry 83418

(RO39182)
 
QC #: Date Reported: Area:
83419 3/28/2010 Suggestion
Description: Steps:
[QC Short Description]
[Cirrus] Provide a way to define an aspect on a constant

[QC Description]
In Cirrus, there is no way to define an aspect on a constant.
QC Entry 83419

(RO39181)
 
QC #: Date Reported: Area:
83420 3/28/2010 Compatibility
Description: Steps:
[QC Short Description]
Silverlight and extension method on nullable boolean

[QC Description]
Serious error when defining an extension method on a nullable boolean
QC Entry 83420

(RO39180)
In a Silverlight application, I have the following extension method. Extension Method (Nullable Boolean).ToXAttribute (Name : String) : XAttribute; Begin Exit If Assigned (Self) Then New XAttribute (Name, Self) Else Nil End; When calling this extension method, Silverlight complains with: System.Security.VerificationException: Operation could destabilize the runtime. at xxx._Global.ToXAttribute (Nullable`1 self, String Name). If I replace the call with the content of the extension method, the code runs fine.
QC #: Date Reported: Area:
83421 3/28/2010 Compatibility
Description: Steps:
[QC Short Description]
no automatic Self in extension methods

[QC Description]
In an extension method, there should be automatic Self use when a field, method, ... in not
prefixed.
QC Entry 83421

(RO39179)
Extension Method String.SkipFirstChar : String; Begin Exit Substring (1) End; The compiler complains at Substring (1) with error PE9: Unknown identifier "Substring". But Substring is a valid method name for a string, so the compiler should understand Self.Substring in this case.
QC #: Date Reported: Area:
83423 3/28/2010 Compiler
Description: Steps:
[QC Short Description]
[Cirrus] Can have two methods with the same signature

QC Entry 83423

(RO39178)
In the first try to have a DependencyProperty aspect, there are a getter and a setter method method automatically created by the compiler: Property MyProp : MyPropType; In the aspect, new getter and setter were created with the same signature, and Cirrus doesn't complain. The new setter and getter were attached to the property. At the end, using Reflector we can see the following tree for the property: Method get_MyProp : MyPropType; Method set_MyProp (value : MyPropType); Property MyProp : MyPropType; Method get_MyProp : MyPropType; Method set_MyProp (value : MyPropType); On a normal property, the methods are only linked to the property and doesn't appear alone.
QC #: Date Reported: Area:
83454 3/30/2010 Debugger
Description: Steps:
[QC Short Description]
Unable to inspect class property in nested class

QC Entry 83454

(RO39176)
see attached solution and screenshot
QC #: Date Reported: Area:
83507 3/31/2010 IDE\Dialogs
Description: Steps:
[QC Short Description]
Monodevelop: Cannot create asp.net web applications

[QC Description]
see steps, unable to create web applications in monodevelop on OSX
QC Entry 83507

(RO39351)
1) Start monodevelop 2) Select file new solution 3) From the Prism ASP.Net section select web application 4) Fill in the Name 5) Select forward and then ok expected asp.net web application should be created actual: Error messagebox pops up and has 2 messages could not save solution "full solution filename", cannot cast from source type to destination type save failed cannot cast from source to destination type
QC #: Date Reported: Area:
83518 3/31/2010 Compiler
Description: Steps:
[QC Short Description]
Cirrus and auto-generated constructor

[QC Description]
When there is an auto-generated constructor and we are adding code to it in HandleImplementation, the inherited contsructor is not called.
QC Entry 83518

(RO39350)
In the HandleImplementation method, I have the following code: With Constructors := OwnerClass.GetConstructors Do Begin Var Ctor : IMethodDefinition; If &Event.Static Then // ... Else If Assigned (Constructors) Then If Constructors.Length = 1 Then Ctor := IMethodDefinition (Constructors [0]) Else Services.EmitError ('...'); And I know that there is only 1 constructor, that is inherited. Var Assignment := ...; Ctor.SetBody (Services, Method Begin RemObjects.Oxygene.Cirrus.Aspects.OriginalBody; Unquote (Assignment) End) And my constructor doesn't have a call to the inherited one!
QC #: Date Reported: Area:
83531 4/1/2010 Compiler
Description: Steps:
[QC Short Description]
You can't use generic constraints with the new extension method syntax

[QC Description]
You should be able to generic constraints with the new extension method syntax

for example,

extension method Helper<TModel>.SomeMethod:String; where TModel is class;
QC Entry 83531

(RO39352)
1) Open attached solution and compile expected: The project should compile without errors actual: The following error is produced /Users/JohnMoshakis/Documents/develop/ExtensionConstraint/ExtensionConstraint/Extension.pas(59,59): Error PE162: Unknown generic parameter "TMODEL" (PE162) (ExtensionConstraint)
QC #: Date Reported: Area:
83684 4/8/2010 Compiler
Description: Steps:
[QC Short Description]
Type mismatch assigning properties to a variable inside a closure.

[QC Description]
Fields work but assignments to object properties on an object inside a closure results in a type mismatch. The variable can be instantiated and assigned the object instance without a problem and public fields can be assigned, but properties of the object cannot be assigned.
QC Entry 83684

(RO39429)
Open the attached solution and build all. Expect 4 type mismatch errors for the 4 property assignments in the closure inside TDao.GetDbAccess.
QC #: Date Reported: Area:
83776 4/12/2010 Compiler
Description: Steps:
[QC Short Description]
Cirrus and Silverlight

[QC Description]
There is a problem when using Cirrus in a Silverlight 3 project:
it is not possible to add the RemoObjects.Oxygene.Cirrus.dll in Visual Studio.
The error message is:
You can't add a reference to RemObjects.Oxygene.Cirrus.dll as it was not built against the
Silverlight runtime. Silverlight projects will only work with Silverlight assemblies.
That seems totally logic, because the Cirrus dll is used by the compiler and not by the
application.
The problem is the same when I try to add my aspect library in the projet.

So I added them manually to the .oxygene file, with:
<Reference Include="OrdinaSoft.Aspects">
<HintPath>..\Bin\OrdinaSoft.Aspects.dll</HintPath>
</Reference>
<Reference Include="RemObjects.Oxygene.Cirrus">
<HintPath>C:\Program Files (x86)\Embarcadero\Delphi
Prism\Bin\RemObjects.Oxygene.Cirrus.dll</HintPath>
</Reference>

Now, I can add aspects to the Silverlight project, but the OrdinaSoft.Aspects.dll assembly
is packed in the XAP file!
If I add <Private>False</Private> to the reference, the application no more compiles.

I think that the problem must be the same with a Compact Framework application or library.
QC Entry 83776

(RO39615)
 
QC #: Date Reported: Area:
83803 4/12/2010 Compiler
Description: Steps:
[QC Short Description]
Multiple unhelpful error messages are generated when a file with extension methods has errors

[QC Description]
The supplied project is missing references to system.web and system.web.mvc

When building the project an error "Period (.) is expected" is generated for each extension method

Its a bit annoying because you have to scroll down for the real error
QC Entry 83803

(RO39614)
1) Open supplied solution and build actual: 1 of following errors are generated for each extension method Error 16 Period (.) expected c:\develop\ErrorMessagesClassLibrary\ErrorMessagesClassLibrary\DataGridHelper.pas 87 157 in addition to errors caused by missing assembly references expected: The period(.) expected errors should not be geneated
QC #: Date Reported: Area:
83874 4/14/2010 Install
Description: Steps:
[QC Short Description]
Prism installer breaks Delphi 2010 (RemObjects.Everwood.2010.dll)

[QC Description]
Upon installing Prism .725 (over previous version .723), Delphi 2010 shows an error message on startup (in front of the splash screen).


-----------------------------------------
Error Loading IDE Assembly or Package
-----------------------------------------
Failed to load IDE add in '%Everwood%\Bin\RemObjects.Everwood.2010.dll'.
Could not load file or assembly 'file:///C:\%Everwood%\Bin\RemObjects.Everwood.2010.dll' or one of its dependencies. The system cannot find the file specified.
-----------------------------------------
[ ]Remove/Disable this Assembly | OK |




I click OK and the IDE continues to load with no further complaints.
QC Entry 83874

(RO40419)
Install Delphi 2010. Install Prism beta .725 Launch Delphi 2010
QC #: Date Reported: Area:
83936 4/16/2010 Compiler
Description: Steps:
[QC Short Description]
ASP.NET Web site: error reported in wrong file

[QC Description]
Sometimes, in an ASP.NET web site, an error is reported on the copy of a file and not the original file.
It seems that it occurs with syntax errors.
QC Entry 83936

(RO39734)
1. Create a new ASP.NET Web Site. 2. In the generated Default.aspx.pas, replace the body of the _Default.Page_Load method with the following: method _Default.Page_Load(sender: Object; e: EventArgs); var a := 1 // semi-colon is missing begin end; 3. Build the project: Error 1 Semicolon expected C:\Temp\WenSite1\Default.aspx.pas 25 13 Error 2 (PE3) Semicolon expected C:\Temp\WenSite1\Default.aspx.pas 26 Error 3 (PE27) "begin" expected C:\Temp\WenSite1\Default.aspx.pas 28 Error 4 (PE24) "end" expected C:\Temp\Temporary ASP.NET Files\wensite1\faa4d892\23426789\App_Web_cymm_ijx.1.pas 30 The 4th error is reported on a temporary file!
QC #: Date Reported: Area:
83937 4/16/2010 Install
Description: Steps:
[QC Short Description]
At installation, the ItemTemplates folder is in the root of the system disc

[QC Description]
After installing the .727 version, there is an ItemTemplates folder in the root of my system disc!
QC Entry 83937

(RO40421)
Structure of the folder: c:\ ItemTemplates Oxygene Web 1033 BrowserFile.zip ContentPage.zip GlobalAsax.zip Handler.zip HTMLPage.zip jscript.zip MasterPage.zip MobileWebConfig.zip ...
QC #: Date Reported: Area:
83973 4/19/2010 IDE
Description: Steps:
[QC Short Description]
Cannot open .pas files in MonoDevelop

[QC Description]
When the Prism add-in is enabled, I cannot open some .pas files. I am attaching a screenshot of the error message that appears when trying to open/edit them. I am also attaching a sample project.

SCREENSHOT OF ERROR:
http://www.superflexible.com/sqimmob/Prism727bug.gif

user: sqimmob
pass: sqimmobwin2004
QC Entry 83973

(RO39767)
See attachment (project). Extract so that you get an absolute path /code10/Units Load project, double-click on TGGlobal.pas. If you cannot confirm the problem, please make sure you catch all exceptions in the open file hook and don't fail.
QC #: Date Reported: Area:
83999 4/20/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
No Silverlight 3 template in VS2010

[QC Description]
When you create a new Silverlight 3 application in VS2010 and want to add a new item, there is no Silverlight template available.
QC Entry 83999

(RO39815)
 
QC #: Date Reported: Area:
84000 4/20/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
Error in adding a new Silverlight page to a SL4 project

[QC Description]
In VisualStudio 2010, when you add a new page to a Silverlight project, the XAML file is named Page1.xaml, but the code-behing page is named Page1.xaml.xaml. It should be Page1.xaml.pas.
QC Entry 84000

(RO39816)
 
QC #: Date Reported: Area:
84004 4/20/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
Error in Silverlight new page template

[QC Description]
When you add a new page in a Silverlight 4 project in VS2010, the template for the new page returns errors:

Error 1 The type 'Canvas' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built. c:\temp\SilverlightApplication2\SilverlightApplication2\Page1.xaml 2 2 SilverlightApplication2
Warning 2 (MSB3245) Could not resolve this reference. Could not locate the assembly "agclr". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets 1360 9 SilverlightApplication2
Warning 3 (MSB3245) Could not resolve this reference. Could not locate the assembly "System.Silverlight". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets 1360 9 SilverlightApplication2
Error 4 System.Threading.ThreadAbortException was thrown on "c:\temp\SilverlightApplication2\SilverlightApplication2\Page1.xaml": Thread was being aborted. c:\temp\SilverlightApplication2\SilverlightApplication2\Page1.xaml 1 1 SilverlightApplication2
QC Entry 84004

(RO39814)
 
QC #: Date Reported: Area:
84051 4/22/2010 Compiler
Description: Steps:
[QC Short Description]
Internal error when using Value If with properties

[QC Description]
See steps
QC Entry 84051

(RO39903)
Compile the following class definition: Type MyClass = Public Class Public Property A : Int32; Property B : Int32; Property Invert : Boolean; Property Left : Int32 Read If Invert Then B Else A; End; Error: error CE7: Internal error (Exception while generating executable)
QC #: Date Reported: Area:
84112 4/24/2010 Compiler
Description: Steps:
[QC Short Description]
Silverlight 4 not supported

[QC Description]
New Silverlight 4 project adds references to Silverlight 3 Assemblies. You cannot integrate with other SL 4 assemblies.

If you change the references to the correct ones it doesn't compile. This is the error and the warnings of a new empty project:

Error 12 (CE73) Type "System.Action" used is defined in multiple assemblies (mscorlib, System.Core) C:\Program Files (x86)\MSBuild\RemObjects Software\Oxygene\RemObjects.Oxygene.targets 166 5 SilverlightApplication2




Warning 1 The element 'PropertyGroup' in namespace 'http://schemas.microsoft.com/developer/msbuild/2003' has invalid child element 'MSBuildAllProjects' in namespace 'http://schemas.microsoft.com/developer/msbuild/2003'. List of possible elements expected: 'Property, AllowUnsafeBlocks, AppConfigForCompiler, ApplicationIcon, ApplicationRevision,
QC Entry 84112

(RO39906)
In Visual Studio 2010 (RTM right now) - File->New Project - Select Silverlight Application - Select Silverlight 4 for Silverlight version. - Remove all wrong Silverlight 3 references. - Add new references to correct SL 4 assemblies. - Try to build.
QC #: Date Reported: Area:
84146 4/26/2010 IDE\Code Editor
Description: Steps:
[QC Short Description]
The code completion dropdown fails to show methods for objects declared using var

[QC Description]
In monodevelop unless you specify the type for an inline var declaration, the code completion dropdown will show "object reference not set to an instance of an object"
QC Entry 84146

(RO39945)
1) Open the supplied project in monodevelop on osx 2) On line 20 of program.pas put the cursor at the end of the line after request. and select control space from the keyboard expected: A dropdown should be displayed and a list of method and properties for an object of type httpwebrequest should be displayed actual: dropdown shows "object reference not set to an instance of an object: note: If I set the type as follows var request:HttpWebRequest := WebRequest.Create(url) as HttpWebRequest; then code completion works as expected
QC #: Date Reported: Area:
84171 4/27/2010 Compiler
Description: Steps:
[QC Short Description]
Error on passing var into set

[QC Description]
Attempt to make a set with variable element generates a System.NullReferenceException runtime error.
QC Entry 84171

(RO39980)
namespace test_varinset; interface uses System.Linq; type T_SomeType = public ( someTypeA, someTypeB, someTypeC ) ; T_SomeTypeSet = public set of T_SomeType ; ConsoleApp = class public class method Main( args : array of String ) ; end ; TestClass = class private FSomeTypeSet : T_SomeTypeSet ; public constructor ; public procedure doTest ; end ; implementation class method ConsoleApp.Main( args : array of String ) ; var test : TestClass ; begin test := new TestClass ; test.doTest ; end ; constructor TestClass ; begin FSomeTypeSet := [ T_SomeType.someTypeA, T_SomeType.someTypeB, T_SomeType.someTypeC ] ; end ; procedure TestClass.doTest ; var xtype : T_SomeType ; begin xtype := T_SomeType.someTypeB ; FSomeTypeSet := [ xtype ] ; // fails here end ; end.
QC #: Date Reported: Area:
84183 4/27/2010 Compiler
Description: Steps:
[QC Short Description]
Cirrus: The property ImplicitField on the IPropertyDefinition interface no longer appears to work

[QC Description]
The properties that I'm checking are declared as follows


[aspect:PropertyDependencyInjector]
property ItemRepository:LineItemRepository;

[aspect:PropertyDependencyInjector]
property InvoiceRepository:InvoiceRepository;


From the wiki

"True if this uses an implicit field (property Test: string) "

Note:

My aspect is doing the following

if(not aProperty.ImplicitField)then
begin
Services.EmitError(String.Format('The property {0} is not implict',aProperty.Name));
end;

Note: In the previous build the error was not raised
QC Entry 84183

(RO39979)
1) Open the supplied solution and build expected: solution should build actual: The following errors are raised Error 1 (ASPE) The property ItemRepository is not implict C:\develop\cirrusbreak\PrismAspects\Source\Examples\PropertyInjectorConsoleApplication\Program.pas 62 13 PropertyInjectorConsoleApplication Error 2 (ASPE) The property InvoiceRepository is not implict C:\develop\cirrusbreak\PrismAspects\Source\Examples\PropertyInjectorConsoleApplication\Program.pas 65 13 PropertyInjectorConsoleApplication
QC #: Date Reported: Area:
84184 4/27/2010 Compiler
Description: Steps:
[QC Short Description]
MVC extension methods can no longer be found when the target framework is 4.0

[QC Description]
A console application using mvd extension methods compiles when the framework is 3.5 but doesn't when its 4.0

Similar console application using C# from 4.0 compiles ok

Note:

The using MVC solution contains 2 console applications Using MVC for framework 3.5 and Using4Application for framework 4.

UsingMVCCSharp is in C# uses framework 4.0, the references are the same to Using4Application so it should compile.

QC Entry 84184

(RO39978)
1) Open Using MVC solution and build Expected: Both console applications in the solution should compile actual: error produced in Using4Application which uses framework 4.0 Error 1 (PE223) "System.Web.Routing.RouteCollection" does not contain a definition for "IgnoreRoute" in expression "collection.IgnoreRoute" C:\develop\MVCExtensionMethods\Using MVC\Using MVC\Program.pas 16 14 Using4Application
QC #: Date Reported: Area:
84206 4/29/2010 Compiler
Description: Steps:
[QC Short Description]
Error CE15 type mismatch when trying to initialize multidimensional array.

[QC Description]
When sometype is defined as an array of array of array of othertype, cannot initialise it with new.
QC Entry 84206

(RO40099)
Type T3DArray = Public Array Of Array Of Array Of Single; T3DArray2 = Public Array [0.., 0.., 0..] Of Single; MyClass = Public Class Public AField : T3DArray; AField2 : T3DArray2; Constructor; End; Implementation Constructor MyClass; Begin Var a := New Single [4, 10, 10]; // OK AField := New Single [4, 10, 10]; // Error AField2 := New Single [4, 10, 10]; // OK AField2 := New T3DArray2 (4, 10, 10); // OK End; Error is error CE15: error CE15: Type mismatch, cannot assign array[0.., 0.., 0..] of System.Single to array of array of array of System.Single
QC #: Date Reported: Area:
84214 4/29/2010 Compiler
Description: Steps:
[QC Short Description]
no warning for Assigned (Self)

[QC Description]
If we use Assigned (Self) in an instance method, the compiler doesn't emit a warning such as:
warning CH3: Boolean expression will always evaluate to "true"

As now the instance methods are always called with callvirt, Self is always assigned, so
such a warning can help flags problematic code.
QC Entry 84214

(RO40097)
 
QC #: Date Reported: Area:
84271 5/1/2010 IDE\VS Integration
Description: Steps:
[QC Short Description]
Cannot Add Project Reference to New WinForms Project

[QC Description]
Attempting to add a project reference to a new WinForms project results in an "Object reference not set to an instance of an object" error.

A workaround is to first select "Add 'Cirrus' Reference", ignore the "Object reference not set to an instance of an object error". However, the reference appears in the "Cirrus References" node instead of the "References" node in Solution Explorer.
QC Entry 84271

(RO40095)
Visual Studio 2008 =============== 1) Create a new WinForms project 2) Add a new Class Library project to the solution 3) In Solution Explorer right-click on the new WinForms project 4) Select "Add Reference" 5) In the "Add Reference" dialog, double click the class library project added in step 2 6) Click OK 7) Notice the error message "Object reference not set to an instance of an object". Alternatively 1) Open the attached solution 2) In Solution Explorer right-click on the BrokenDesignerSandbox project 3) Select "Add Reference" 4) In the "Add Reference" dialog, double click the BrokenDesignerSandbox.Controls project 5) Click OK 6) Notice the error message "Object reference not set to an instance of an object".
QC #: Date Reported: Area:
84272 5/1/2010 IDE\VS Integration
Description: Steps:
[QC Short Description]
WinForms Designer Broken When Containing Custom Control

[QC Description]
The WinForms designer breaks when a custom control is added to a form or user control.
QC Entry 84272

(RO40094)
Visual Studio 2008 =============== 1) Open the attached solution 2) In Solution Explorer right-click on the BrokenDesignerSandbox project 4) Select "Add 'Cirrus' Reference" 5) Ignore the error message "Object reference not set to an instance of an object". 6) Select "Add Reference" 7) In the "Add Reference" dialog, double click the class library project added in step 2 8) Click OK 9) Right-click on Main.pas and select "View Designer" 10) Select Build -> Rebuild Solution from the main menu 11) Open the Toolbox 12) Drag and drop an instance of CustomControl in the BrokernDesignerSandbox.Controls group to the MainForm designer (Main.pas [Design]) 13) Select Build -> Rebuild Solution from the main menu 14) Close the Main.pas [Design] document 15) Right-click on Main.pas and select "View Designer" 16) Observe the "Type of field self.customControl1 not found - are you missing an assembly reference?" error. If you restart Visual Studio and re-open the solution, the designer displays correctly. However, in my larger application, the designer does not display correctly in any situation.
QC #: Date Reported: Area:
84316 5/4/2010 IDE\Project Management
Description: Steps:
[QC Short Description]
Add reference does not work anymore

[QC Description]
Add reference gives an error.
Only add Cirrus reference works.
QC Entry 84316

(RO40230)
- Create a new console app - add a new class lib project to the solution - try to add the class lib to the console project references --> an error occurs: --------------------------- Microsoft Visual Studio --------------------------- Object reference not set to an instance of an object. --------------------------- OK ---------------------------
QC #: Date Reported: Area:
84365 5/5/2010 Compiler
Description: Steps:
[QC Short Description]
Invalid "PH4 Field,,,is never used" error

[QC Description]
With the code in Steps, I get the error

(PH4) Field "_dataProvider" defined in type
"DataObjects,Test" is never used.

Hmmm,,,, Looks to me like it is used to calculate the value of
_factory in the very next line!

This is a simple test case to show the problem.
QC Entry 84365

(RO40185)
1) Complile this code: namespace DataObjects; interface uses System.Configuration; type Test = public static class private class var _dataProvider: String := ConfigurationManager.AppSettings.Get("DataProvider"); readonly; _factory: String := CreateFactory(_dataProvider); readonly; class method CreateFactory(dataProvider: String): String; empty; public class property Factory: String read _factory; end; implementation end. 2) Observe error message.
QC #: Date Reported: Area:
84745 5/19/2010 Debugger
Description: Steps:
[QC Short Description]
Debugger cannot see more than two inheritance levels.

QC Entry 84745

(RO40530)
- Start VS2008 - Create a new Winforms App - Put a Button on the form. - double click on the button to create an event handling method and open the code editor. - put a beak point on the "end;" line of the empty method. - run the app and click the button - When it hits the break point hoover over the "sender" object. - Try to go deeper in the inheritance tree of the object by opening the "inherited" part. - if you go two levels deep VS hangs completely...

Server Response from: ETNASC04